0

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

我们有一个拆分应用程序,其中左侧显示搜索结果列表,右侧显示所选结果的详细信息。在两者之间我们有一个<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 无济于事。我意识到这是我应该忽略并接受为“它的工作方式”的东西,但这不是我的思维方式。

就像我说的那样,我知道这可能很简单,也可能像询问某人如何呼吸一样基本,但是该方法实际上在哪里得到光标的小 <-> 图像?

4

1 回答 1

3

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

于 2013-05-30T19:29:31.353 回答