System.Windows.Input.Cursors如何知道游标应该是什么样的?

时间:2013-05-30 18:59:32

标签: c# .net xaml

有问题的代码的具体实现如下:

我们有一个拆分应用程序,左侧显示搜索结果列表,右侧显示所选结果的详细信息。在两者之间我们有一个<Gridsplitter>对象,这样每个边都可以重新调整大小。我们的应用程序中的代码行是:

<GridSplitter Grid.Column="1" HorizontalAlignment="Left" Width="3" Panel.ZIndex="100" MouseEnter="GridSplitter_MouseEnter" MouseLeave="GridSplitter_MouseLeave" Grid.RowSpan="2"/>

我查看了GridSplitter_MouseEnterGridSplitter_MouseLeave的方法,发现它们调用了System.Windows.Input.Cursors类,一个用于将光标更改为侧向箭头,另一个用于返回光标到标准的点击箭头。这两种方法都在这里:

private void GridSplitter_MouseEnter(object sender, MouseEventArgs e)
{
    Mouse.OverrideCursor = System.Windows.Input.Cursors.SizeWE;
}

private void GridSplitter_MouseLeave(object sender, MouseEventArgs e)
{
    Mouse.OverrideCursor = System.Windows.Input.Cursors.Arrow;
}

然后我查看了System.Windows.Input.Cursors类来查看这些小型艺术混蛋的定义,但我无法弄清楚。下面是SizeWE方法的代码。

//
// Summary:
//     Gets a two-headed west/east sizing System.Windows.Input.Cursor.
//
// Returns:
//     A two-headed west/east sizing cursor.
public static Cursor SizeWE { get; }

我尝试用VS2012打开C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ PresentationCore.dll无济于事。我意识到这应该是我应该忽略并接受它的工作方式和#39;但那并不是我的思维方式。

就像我说的那样,我知道它可能要么是愚蠢的简单,要么就像要求某人如何呼吸一样基本,但这种方法实际上得到了什么呢?&lt; - &gt;光标的图像?

1 个答案:

答案 0 :(得分:3)

你快到了。 Cursor类调用本机方法,该方法使用user32.dll加载游标。我假设标准光标图标是嵌入在该DLL中的资源。