我的.cur文件出了问题。
我将光标设置为某个自定义光标的窗口行为:
Mouse.OverrideCursor = (Cursor)mAssociatedObject.Resources["MoveCursor"];
在窗口中,我将光标定义为资源:
<Cursor x:Key="MoveCursor">Resources/cur2.cur</Cursor>
这很好用。
问题是如果用户在Windows设置中更改了光标大小,我的光标仍然是32x32的大小。
有人知道这方面的解决方案吗?
谢谢
答案 0 :(得分:0)
据我所知,你的问题有两部分:
对于第1部分,您可以使用@Hans Passant建议的SystemParameters.CursorHeight。
对于第二部分,您可以参考下面使用Cursor.DrawStretched()
的代码以下是MSDN的示例代码:
private void DrawCursorsOnForm(Cursor cursor)
{
// If the form's cursor is not the Hand cursor and the
// Current cursor is the Default, Draw the specified
// cursor on the form in normal size and twice normal size.
if(this.Cursor != Cursors.Hand &
Cursor.Current == Cursors.Default)
{
// Draw the cursor stretched.
Graphics graphics = this.CreateGraphics();
Rectangle rectangle = new Rectangle(
new Point(10,10), new Size(cursor.Size.Width * 2,
cursor.Size.Height * 2)); // <<<<<<<<< you will need to define size based on SystemParameters.CursorHeight here
cursor.DrawStretched(graphics, rectangle);
// Dispose of the cursor.
cursor.Dispose();
}
}