【问题标题】:XAML Stop List Box Text Style Changing on DefocusXAML 停止列表框文本样式更改散焦
【发布时间】:2011-11-27 17:37:17
【问题描述】:

我对包含 ListBox 的 .NET 4 XAML 程序有疑问。 当列表框失去焦点时,文本变为灰色而不是设置的白色。背景确实这样做了,但我用

解决了这个问题
    <Style.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#376807" />
            <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#487918" />
    </Style.Resources>

我尝试了几种解决方法,包括

    <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Foreground" Value="#FFFFFF" />
            </Trigger>
            <Trigger Property="IsSelected" Value="False">
                <Setter Property="Foreground" Value="#444444" />
            </Trigger>
     </Style.Triggers>

但还没有成功……

【问题讨论】:

  • 你试过修改默认控件模板吗?
  • @Gabe 我没有,因为我的理解是这会改变所有的列表框。我只想将此应用于列表框的此实例。
  • 您好,您尝试使用表达式混合吗?如果你有的话,我可以帮你快速解决这个问题:)
  • @AllanChua 说尝试使用表达式混合来为您的控件设置样式,它既简单又有效,您可以创建样式并更改其属性以满足您的需求。
  • 我很乐意使用任何方法,我已经安装了表达式混合,但是不要真正使用它。

标签: c# xaml listbox styles


【解决方案1】:

好的,我已经编辑了我的代码。只需检查这是否满足您的需求,如果没有,请恢复。

以下已尝试使用列表框中的一些虚拟数据,并且可以正常工作。我希望这是您正在寻找的,如果不是,请进一步澄清。

    <DataTemplate x:Key="SelectedTemplate">
        <TextBlock Text="{Binding}" Background="Green" Foreground="White" />
    </DataTemplate>

    <Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle">
        <Setter Property="ContentTemplate" Value="{StaticResource ItemTemplate}" />
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background" Value="Green" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<StackPanel>
    <ListBox x:Name="dummyList" ItemContainerStyle="{StaticResource ContainerStyle}" HorizontalContentAlignment="Stretch" >
    <ListBoxItem Content="A" />
    <ListBoxItem Content="B" />
    <ListBoxItem Content="C" />
</ListBox>
<Button Height="31" Width="61" Content="Click"/>
    <ListBox Name="listBox2" Height="100" Width="120" HorizontalContentAlignment="Stretch">
    <ListBoxItem Content="XX" />
        <ListBoxItem Content="YY" />
    </ListBox>
</StackPanel> 

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-23
相关资源
最近更新 更多