2017-08-27 8 views
2

ich einige Arten in der App.xaml gesetzt habenGlobale Style in UWP XAML

<Style TargetType="TextBlock"> 
    <Setter Property="Foreground" Value ="HotPink"/> 
</Style> 

Dieser Stil funktioniert auf normalen Kontrollen, jedoch nicht in Datatemplates

<TextBlock Text="Test"></TextBlock> <!-- Works here --> 
<ItemsControl ItemsSource="{Binding ViewModel.UniverseGroups}" HorizontalAlignment="Right" VerticalAlignment="Center"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <RelativePanel> 
       <TextBlock Text="{Binding Name}"></TextBlock> 
       <!-- This text still is black --> 
      </RelativePanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

Gibt es eine Möglichkeit global zu machen Stile funktionieren auch in DataTemplates?

Antwort

4

Leider nicht, wie in Ihrem Fall wird es durch die Foreground der ItemsControl überschrieben werden. Also müssen Sie folgendes zu Ihrem App.xaml hinzufügen.

<Style TargetType="ItemsControl"> 
    <Setter Property="Foreground" Value ="HotPink"/> 
</Style> 

Wenn Sie mit fortgeschritteneren ItemsControl wie ListView handelt, die ItemContainerStyle unterstützt, werden Sie die TargetType seiner Elementcontainer (d ListViewItem) anstelle festlegen müssen.

<Style TargetType="ListViewItem"> 
    <Setter Property="Foreground" Value ="HotPink"/> 
</Style> 
+2

Das funktioniert auch gut für mich! – AntiHeadshot