`TextBlock` 的 `TextWrapping` 属性 没有在条件下设置为 `Wrap`
`TextBlock`'s `TextWrapping` property not getting set to `Wrap` on conditions
TextWrapping
属性 在此代码
中设置为 Wrap
<ListView Name="answerListView" ItemsSource="{Binding Path=answers}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Expander Cursor="Hand">
<Expander.Header>
<TextBlock Text="{Binding Path=Body_Markdown}" TextWrapping="Wrap"/>
</Expander.Header>
</Expander>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但是,现在我已将条件格式添加到 TextBlock
,即,如果 answer
被接受,则将其显示为绿色。所以我使用的代码是这样的:
<ListView Name="answerListView" ItemsSource="{Binding Path=answers}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Expander Cursor="Hand">
<Expander.Header>
<TextBlock Text="{Binding Path=Body_Markdown}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=is_accepted}" Value="true">
<Setter Property="Foreground" Value="Green"/>
<Setter Property="TextWrapping" Value="Wrap"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Expander.Header>
</Expander>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这里,第二行设置,即Foreground
属性不起作用。即使我在 TextBlock
中的 <Style TargetType>
或 TextWrapping="Wrap"
之后有相同的行,它也不起作用。
也指定类型:
<Setter Property="TextBlock.Foreground" Value="Green"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
我猜你绑定的是私有字段,而不是 public 属性:
{Binding Path=is_accepted} should be replaced by your property {Binding Path=Is_accepted}
此答案假设您使用的是通常的命名方式,即字段以小写字母开头,属性以大写字母开头。
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
必须添加到 ListView
。那么这个问题就迎刃而解了。
TextWrapping
属性 在此代码
Wrap
<ListView Name="answerListView" ItemsSource="{Binding Path=answers}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Expander Cursor="Hand">
<Expander.Header>
<TextBlock Text="{Binding Path=Body_Markdown}" TextWrapping="Wrap"/>
</Expander.Header>
</Expander>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但是,现在我已将条件格式添加到 TextBlock
,即,如果 answer
被接受,则将其显示为绿色。所以我使用的代码是这样的:
<ListView Name="answerListView" ItemsSource="{Binding Path=answers}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Expander Cursor="Hand">
<Expander.Header>
<TextBlock Text="{Binding Path=Body_Markdown}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=is_accepted}" Value="true">
<Setter Property="Foreground" Value="Green"/>
<Setter Property="TextWrapping" Value="Wrap"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Expander.Header>
</Expander>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这里,第二行设置,即Foreground
属性不起作用。即使我在 TextBlock
中的 <Style TargetType>
或 TextWrapping="Wrap"
之后有相同的行,它也不起作用。
也指定类型:
<Setter Property="TextBlock.Foreground" Value="Green"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
我猜你绑定的是私有字段,而不是 public 属性:
{Binding Path=is_accepted} should be replaced by your property {Binding Path=Is_accepted}
此答案假设您使用的是通常的命名方式,即字段以小写字母开头,属性以大写字母开头。
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
必须添加到 ListView
。那么这个问题就迎刃而解了。