"TextBlock"的"TextWrapping"属性未在条件上设置为"Wrap"


在此

代码中,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"后有相同的行,那么它也不起作用。

>必须将ScrollViewer.HorizontalScrollBarVisibility="Disabled"添加到ListView 中。那么这个问题就解决了。

也指定类型:

<Setter Property="TextBlock.Foreground" Value="Green"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap"/>

我猜你绑定的是一个私有字段,而不是公共属性:

{Binding Path=is_accepted} should be replaced by your property {Binding Path=Is_accepted}

此答案假设您使用的是通常的命名,该命名使字段以小写开头,属性以大写开头。

相关内容

  • 没有找到相关文章

最新更新