我有一组游标(.cur文件),我想用于我的WPF / VB.net应用程序,而不需要在系统范围内更改游标。我假设我会以某种方式使用每个WPF对象的“游标”属性,但我不知道如何使用我自己的游标。
我该怎么做才能做到这一点?
答案 0 :(得分:0)
您是否尝试过使用文件路径重载来创建游标?
Cursor cursor = new Cursor("<path>");
或者那件事的流?
一旦有了光标对象,就可以将它分配给应该显示它的控件。 (FrameworkElement.Cursor
)
如果您将光标用作资源,例如在项目的游标文件夹中
您可以在XAML的任何地方引用它,例如
<Window Cursor="Cursors/wait_il.cur">...
答案 1 :(得分:0)
假设游标位于/ Resources /文件夹中,并且构建操作设置为资源:
声明:
<TextBlock x:Key="MyCursor" Cursor="/Resources/grab.cur" />
然后应用于初始化程序中的主窗口:
this.Cursor = (FindResource("MyCursor") as TextBlock).Cursor;
答案 2 :(得分:0)
好的,因为H.B在我身边咆哮是一个班级:p
public class CustomCursor
{
private System.Windows.Input.Cursor _cursor = null;
public System.Windows.Input.Cursor Cursor
{
get
{
if (_cursor == null)
_cursor = GetCursor();
return _cursor;
}
}
public string RelativePath { get; set; }
public CustomCursor()
{
}
public CustomCursor(string relativePath)
{
RelativePath = relativePath;
}
public System.Windows.Input.Cursor GetCursor()
{
if (RelativePath == null)
throw new ArgumentNullException("You must set RelativePath first");
string directory = Directory.GetCurrentDirectory();
string absPath = directory + '\\' + RelativePath;
if (!File.Exists(absPath))
throw new FileNotFoundException();
return new System.Windows.Input.Cursor(absPath);
}
}
在后面的代码中使用,如下所示:
this.Cursor = new CustomCursor("grab.cur").Cursor;
或在xaml中声明:
<local:CustomCursor x:Key="MyCursor" RelativePath="grab.cur"/>
像这样引用:
this.Cursor = (FindResource("MyCursor") as CustomCursor).Cursor;