2012-07-05 19 views
0

我在頁面左手邊有一個StackPanel,其中我在運行時添加了組合框,選擇了任何組合框的項目,我在右側顯示相關信息。我想要類似的東西,如果任何組合框激活一個邊框應該應用在該組合框上,我不能使用onfocus,因爲只要我點擊右邊的相關信息,邊框就會消失。Silverlight:在運行時在控件上應用邊框

謝謝!

+0

你如何看待使用[ListBox](http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox(v = vs.95).aspx)而不是StackPanel的?它會突出顯示您選擇的項目。它使用彩色背景而不是邊框​​,但當然你可以設置[ItemContainerStyle](http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox.itemcontainerstyle(v = vs .95).aspx)使用ListBoxItem樣式的可用副本[此處](http://msdn.microsoft.com/en-us/library/cc278062(v = vs.95).aspx)。 – Andrew 2012-07-05 14:16:40

+0

安德魯有正確的想法。代替堆棧面板(可能在代碼隱藏中填充),可以使用帶ItemTemplate DataTemplate設置爲組合框的ListBox,或者自定義列表框的突出顯示,以適合或替換爲邊框。將列表框綁定到一個ObservableCollection,該組合框應包含組合框應從中導出的所有對象。除此之外,您需要更具體地瞭解驅動列表和組合框的內容。 – 2012-07-16 05:18:04

回答

0

這裏有一個解決方案的僞代碼:

void AnyComboBoxSelectionChanged(ComboBox selectedBox) 
    foreach combobox in stackPanel 
     combobox.border = none 
    selectedBox.border = highlightedBorder 

也就是說,使用組合框的SelectionChanged事件需要設置的邊界。

相關問題