私は私の窓のリソース領域に作成したスタイルを持っている:テキストブロックスタイルが適用されないのはなぜですか?
<Style TargetType="TextBlock">
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
私はこれは私が私のリストビューの列を作成するときに、すべてのテキストブロックは、そう、このスタイルを持っているだろうことを意味考えた:
<GridViewColumn>
<GridViewColumnHeader Content="Source"/>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Source, Mode=OneWay}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
省略記号のスタイルは、列内のテキストブロックに適用されません。
x:Keyでスタイルに名前を付けると、Style = {StaticResource xxx}を使用すると動作します。名前のないアプローチはなぜ機能しませんか?あなたはTextBlock
自身に近い別のTextBlock
スタイルを定義することができる
<Window x:Class="ListViewStyle.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
</Window.Resources>
<ListView ItemsSource="{Binding Rows}">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumnHeader Content="Source"/>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Source, Mode=OneWay}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumnHeader Content="Primary"/>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Primary, Mode=OneWay}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumnHeader Content="Secondary"/>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Secondary, Mode=OneWay}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Window>
私はこれが古い質問であることを知っていますが、今日はまったく同じ質問が尋ねられ、あなたの質問がそこにリンクされていました。私はそこに答えを提供しました。http://stackoverflow.com/questions/40385905/why-doesnt-my-style-get-applied/40388383#40388383 –