2013-04-12 52 views
1

我有一個ListView並修改它的DataTemplate與2 TextBlocksMetro應用程序更改列表查看所選項目內容前景

第一TextBlock包含標題,第二個子標題

我使用不同顏色的2 TextBlocks

下面是ListViewItem的示例正常查看。

Normal

這裏的ListViewItem選擇視圖的一個例子。

Selected

所以我的問題是我如何改變TextBlocksForeground顏色選擇看法?希望在xaml中做到這一點。我嘗試設置不同的畫筆,這些畫筆適用於尚未明確設計風格的項目。

不知道如何處理這種情況。

+0

的[Metro應用的ListView的SelectedItem選定的VisualState](http://stackoverflow.com/questions/17010582/metro-app-listview-selecteditem-selected-visualstate) – c0D3l0g1c

+0

可能重複**分辨**: http://stackoverflow.com/questions/17010582/metro-app-listview-selecteditem-selected-visualstate – c0D3l0g1c

回答

2

您可以使用視覺狀態。

<ListView> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="*"/> 
        <RowDefinition Height="*"/> 
       </Grid.RowDefinitions> 

       <TextBlock x:Name="txtOne" Grid.Row="0" Foreground="Green"/> 
       <TextBlock x:Name="txtTwo" Grid.Row="1" Foreground="Gray"/> 
       <VisualStateManager.VisualStateGroups> 
        <VisualStateGroup x:Name="SelectionStates"> 
         <VisualState x:Name="Unselected"/> 
         <VisualState x:Name="Selected"> 
          <Storyboard> 
           <ObjectAnimationUsingKeyFrames Storyboard.TargetName="txtOne" Storyboard.TargetProperty="Foreground"> 
            <DiscreteObjectKeyFrame KeyTime="0" Value="Red"/> 
           </ObjectAnimationUsingKeyFrames> 
           <ObjectAnimationUsingKeyFrames Storyboard.TargetName="txtTwo" Storyboard.TargetProperty="Foreground"> 
            <DiscreteObjectKeyFrame KeyTime="0" Value="Yellow"/> 
           </ObjectAnimationUsingKeyFrames> 
          </Storyboard> 
         </VisualState> 
        </VisualStateGroup> 
       </VisualStateManager.VisualStateGroups> 
      </Grid> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
1

你不需要玩視覺狀態。

在您的ResourceDictionary中,爲這些畫筆「ListBoxItemSelectedBackgroundThemeBrush」,「ListBoxItemSelectedPointerOverBackgroundThemeBrush」,「ListBoxFocusBackgroundThemeBrush」設置一個值。它將覆蓋應用程序的默認畫筆。

實施例:

<!-- Overrides default ListBox brushes --> 
<SolidColorBrush x:Key="ListBoxItemSelectedBackgroundThemeBrush" Color="{StaticResource GreenColor}" /> 
<SolidColorBrush x:Key="ListBoxItemSelectedPointerOverBackgroundThemeBrush" Color="{StaticResource LightGreenColor}" /> 
<SolidColorBrush x:Key="ListBoxFocusBackgroundThemeBrush" Color="Transparent" /> 

這裏是一個有用的鏈路中的WinRT,它引用電刷名稱,的WinRT的默認控件深化發展時。

WinRt default brushes names and values

+0

此解決方案不會工作,c0D3l0g1c想要更改數據模板中文本塊的前景。 – Xyroid

相關問題