在 WinUI3 中要改變滑鼠游標非常麻煩,因為元件的 Cursor 是 protected (還好不是 private),所以無法直接使用,需要先建立自訂類別來繼承元件,然後再將滑鼠游標 Cursor 公開:
建立自訂 MyTextBox ,繼承 MyTextBox ,並將游標公開
在 xaml 中使用我們剛建立的自訂 TextBox:
在程式碼中就可以修改 滑鼠游標了!這裡設定游標移入和移出的事件,移入會變更為「幫助」有問號的滑鼠游標
Microsoft.Learn - Windows Runtime APIs not supported in desktop apps
建立自訂 MyTextBox ,繼承 MyTextBox ,並將游標公開
public class MyTextBox: Microsoft.UI.Xaml.Controls.TextBox
{
public InputCursor Cursor
{
get => ProtectedCursor;
set => ProtectedCursor = value;
}
}
在 xaml 中使用我們剛建立的自訂 TextBox:
<local:MyTextBox x:Name="MyTextBox1"/>
在程式碼中就可以修改 滑鼠游標了!這裡設定游標移入和移出的事件,移入會變更為「幫助」有問號的滑鼠游標
this.MyTextBox1.PointerEntered += (sender, args) =>
{
MyTextBox1.Cursor =
Microsoft.UI.Input.InputSystemCursor.Create(Microsoft.UI.Input.InputSystemCursorShape.Help);
};
this.MyTextBox1.PointerExited += (sender, args) =>
{
MyTextBox1.Cursor =
Microsoft.UI.Input.InputSystemCursor.Create(Microsoft.UI.Input.InputSystemCursorShape.Arrow);
};
Microsoft.Learn - Windows Runtime APIs not supported in desktop apps
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com