2011-08-02 61 views
0

我想突出顯示一條線,如果它被點擊。就像一個TreeViewItem被突出顯示,而它被選中或者被聚焦(似乎有一個不同 - 當它被聚焦(並且被選擇)時,它的高光顏色是藍色的,如果它只被選中並且失去聚焦的話它會變成灰色)。 我試圖在不知道要更改哪個屬性的情況下捕獲Line的Gotfocus事件,但它甚至沒有觸發(儘管Focusable = true)。 我得到了MouseDown事件觸發(我主要不想用於此),但仍不知道要更改哪個屬性。 Msdn和Google沒有任何意義。 任何想法? 在此先感謝。GotFocus上的高光線

回答

0

現在點擊此處。

例如

<Path Data="M101,42 L380,76" Fill="#FFF4F4F5" Height="35" 
    Margin="101,42,243,0" Stretch="Fill" Stroke="Black" 
VerticalAlignment="Top" MouseEnter="Path_MouseEnter" Name="myLine"/> 

和c#

private void Path_MouseEnter(object sender, 
System.Windows.Input.MouseEventArgs e) 
{ 
    myLine.Stroke = new SolidColorBrush(Colors.Green); 
} 

請立即檢查:)

+0

爲什麼要推薦我使用文本塊,並使用它的GotFocus,如果我想獲得線的GotFocus? Textblock和Line甚至沒有共同的東西,而Textblock繼承自Controls和Line from Shape ... – csharpnewb

+0

我誤解了你的問題。我的錯。 –

+0

看看我對seond答案的評論,我進一步解釋了這個問題;) – csharpnewb

0

您可以使用樣式和觸發器這樣的工作。你不需要任何代碼,只有XAML可以工作。創建一個觸發器,一旦mouse down = true觸發,觸發器內部將更改線的顏色或其背景或任何您想要的內容

有關觸發器的基本知識,請參閱this

+0

這是真的。但問題仍然存在,我不知道要改變哪個屬性。我已經查找了UIElement,並沒有發現任何有用的模擬高亮部分(例如TreeViewItem)的東西。背景和前景也不工作。 – csharpnewb

+1

也許Stroke屬性... – Reniuz

+0

你可以將該行封裝在另一個控制如堆疊面板或其他東西。然後改變stackpanel的背景,看起來這條線是高亮的? –