下午好位置,WPF C#問題與得到passwordBox(X,Y)
我需要得到PasswordBox這是什麼地方放置我的形式被稱爲「LogInWindow.xaml」上的位置,因爲我想模擬psyhical /鼠標點擊該文本框。
我媒體鏈接有其接受兩個參數的功能,這是做點擊這些參數爲:x & Y,它應該是目標控制的位置,這裏是功能:
public static void LeftMouseClick(int xpos, int ypos)
{
SetCursorPos(xpos, ypos);
mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
}
所以我很在這裏失蹤是xpos
和ypos
(目標控制的座標),這裏是其中一個方法我試圖讓位置,但它不是很遺憾工作:
Point relativePoint = txtPassword.TransformToAncestor(Application.Current.MainWindow)
.Transform(new Point(0, 0));
我得到了錯誤的TX tPassword說: 錯誤14字段初始值設定項不能引用非靜態字段,方法或屬性'Main.LogInWindow.txtPassword'
我終於通過@FrancisLord建議做了這個工作。
但現在我面臨的另一個問題,我想測試這一另一臺計算機/顯示器上,和我複製我的.exe文件,我發現這是行不通的另一臺機器上,我的開發機器上我看到了我的功能LeftMouseClick
工作正常,因爲它觸發「button1」,我正在尋找,並在另一臺機器看起來像它不模擬點擊,也許它找不到button1的位置或任何://:/// 這裏是我的代碼:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
relativePoint = this.button1.TransformToAncestor(this)
.Transform(new Point(0, 0));
LeftMouseClick((int)relativePoint.X, (int)relativePoint.Y);
//restOFcode
}
只是一個簡單的問題:你爲什麼要模擬點擊?它是專注於文本框?如果是這樣,我相信WPF有一個比模擬鼠標點擊更好的方法:) –
因爲我正在使用觸摸屏,並以某種方式在較新的操作系統,如W8.1和W10,它記得最後一步我做到了無論我觸摸它不斷重複該按鈕(按鈕我presed),我發現只有取消的方式是當用戶註銷模擬點擊屏幕上的somehwere,這將取消以前的行動 –
這真的很奇怪,從來沒有見過類似的東西 –