2013-09-30 54 views
1

在w8應用程序中使用listitem時,如何確定懸停和單擊樣式的內容?什麼使w8 xaml中的懸停和點擊樣式?

我的列表視圖看起來是這樣的:

<ListView x:Name="itemsListView" 
      TabIndex="1" 
      Visibility="Visible" 
      Padding="10,0,0,0" Foreground="Black" 
      ItemsSource="{Binding Nodes.Nodes}" 
      behaviors:ListViewItemClickedToAction.Action="{Binding SelectNodeAction}" 
      IsItemClickEnabled="True" FontFamily="Global User Interface" 
      > 
    <ListView.ItemTemplate> 
     <DataTemplate> 
       <TextBlock Text="{Binding Name}" /> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

當我將鼠標懸停使用鼠標,我得到的白色字母和近白色背景。

我已經嘗試重新使用Adventureworks購物應用的部分,所以有從那裏複製的樣式。但是,我無法理解應用於ListView項目的內容。

回答

1

您可能已經有了新的功能,但如果您選中了這個screenshot,您可以看到VS2012如何輕鬆創建內置樣式的副本。當您按下「編輯副本...」時,會出現一個對話框,您可以在該對話框中選擇要放置項目的位置。

您可以繼承樣式。風格的傳承按以下方式工作:

<Style x:Name="BasicStyle" TargetType="Button"> 
    <Setter Property="Background" Value="Green" /> 
</Style> 

<Style x:Name="ButtonStyle" TargetType="Button" BasedOn="{StaticResource BasicStyle}"> 
    <Setter Property="Foreground" Value="Red" /> 
</Style> 

您可以在以下幾個步驟做的傳承使另一個按鈕樣式可以繼承「的ButtonStyle」。 因此,如果要分離它或重用樣式的行爲和外觀,可以製作僅包含Template屬性的樣式。但是你不能將可視化狀態管理器分成幾種樣式,因爲如果你繼承了一個設置模板屬性的樣式,那麼如果你想改變該樣式的懸停狀態,你需要複製整個模板並且只更改該部分在代碼中。

我認爲這將是一個不錯的改善,如果你可以使一個樣式只包含按下狀態,然後另一種樣式只包含懸停效果等。

我希望這可以回答你的問題:)如果你有任何問題,我很樂意回答更多有關XAML的問題!

1

您需要創建自定義ListViewItem,檢出ListViewItem styles and templates

您需要自定義各種視覺狀態。

+0

我認爲這是我正在尋找的。 –

+0

請標記爲接受,如果它可以幫助你:) – Xyroid

+0

那麼,它並沒有完全回答這個問題;我如何確定正在應用哪種風格,儘管我對它有了更好的理解。現在,你必須得到一個滿意的決定。 ;) –