2013-05-30 53 views
0

相關代碼的具體實現如下:System.Windows.Input.Cursors如何知道遊標的外觀?

我們有一個拆分應用程序,其中左側顯示搜索結果列表,右側顯示所選結果的詳細信息。在兩者之間,我們有一個<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; } 

我嘗試打開C:\ Program Files文件\參考大會\微軟\ Framework.NETFramework \ V4.0 \ PresentationCore.dll中與VS2012無濟於事。我意識到這是我應該忽略和接受的'它的工作方式',但這不是我的頭腦如何工作。

就像我說過的,我知道這可能是愚蠢簡單,或者像詢問某人如何呼吸一樣基本,但該方法實際上在哪裏得到小光標圖像?

回答

3

你幾乎在那裏。 Cursor類調用本地方法,該方法使用user32.dll加載遊標。我會假設標準光標圖標是嵌入在該DLL中的資源。

+0

我想出了使用[ILSpy](http://ilspy.net/)。 –

+0

+1:[LoadCursor](http://msdn.microsoft.com/en-us/library/windows/desktop/ms648391(v = vs.85).aspx)函數具有資源列表。 –