2016-04-27 78 views
1

我已經制作了自己的自定義面板(主要處理項目的網格佈局,取決於它們的大小和麪板大小)。將樣式應用於自定義面板的一個子元素?

我必須能夠在項目之間「導航」(使用鍵盤箭頭),併爲其中的一個提供視覺樣式。

目前我能得到應強調UIElement,但我不知道:

  • 我如何應用樣式?
  • 要應用哪種風格?由於我不知道包含什麼樣的元素,所以我想也許在光標周圍應用一些邊框

任何想法如何進行?

我也會有以「專注」這個元素,如果這能幫助

+0

您可以使用該自定義面板作爲ListBox的ItemsPanel。 ListBox允許選擇一個或多個元素(爲每個數據項目創建一個ItemContainer(ListBoxItem)),因此您可以自定義選定的ListBoxItem風格 – ASh

+0

@ASh這似乎是一個好主意!你在哪裏處理鍵盤按鍵?你應該回答你的建議 – J4N

回答

0

的UIElement類型不具有的風格理念,風格是FrameworkElement的定義的屬性,其自UIElement派生,並提供了一個一組WPF元素的屬性,事件和方法。

如果你能投你的UIElement的FrameworkElement的,你可以應用該樣式這樣

FrameworkElement frameworkElement = uiElement as FrameworkElement; 

if (frameworkElement != null) 
{ 
    frameworkElement.Style = myStyle; 
} 
+0

好的,我可以做,但是應用什麼風格?既然我只知道這是一個FrameworkElement?我不知道它周圍的財產 – J4N

+0

如果你想手動應用一個樣式,你將不得不知道你的樣式,否則整個想法是沒有意義的。您可以獲取元素的類型並使用它來查找以該類型爲目標的樣式。 –

0

可以使用自定義面板作爲ItemsPanel的列表框,例如

<ListBox> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 

這裏找到ItemsControl: A-Z chapter I

ListBox的包裝物品進入ListBoxItem的容器和支持(在箱子外面)選擇(1個或多個項目),選擇的項目亮點(可以用一種新的風格進行定製)的想法。所有的箭頭鍵也工作。

+0

我會嘗試,但我不確定箭頭鍵如何與網格佈局一起工作(這意味着上下應該更改行,左右應該改變列) – J4N