WPF - 基于内容突出显示文本框

标签 wpf mvvm

我正在学习 WPF/MVVM,并且我有一个组合框,它根据选定的组合框值更新几个文本框。如果它们包含某个值,我想做的是突出显示一些 xt 框。文本框不接收焦点并且是只读的。使用 MVVM 处理此类事情的最佳方法是什么?

编辑:
感谢您使用触发器的想法。我实际上是在尝试根据同一文本框的值设置文本框的边框颜色。根据下面提供的信息,这就是我的文本框的样子,但是当文本框中出现“交易”一词时,边框不会改变。我是否错误地引用了某些内容?

<TextBox Height="23" HorizontalAlignment="Left" VerticalAlignment="Top" Width="170" Grid.Column="4" Grid.Row="2" Margin="4,2,0,0" IsEnabled="False"  DataContext="{Binding SelectedTDetails}" Text="{Binding CType}" Background="WhiteSmoke" Padding="1,0,0,0" >
    <TextBox.Style>
        <Style TargetType="TextBox">
            <Style.Triggers>
                <Trigger Property="Text" Value="Transaction">
                    <Setter Property="BorderBrush" Value="LightGreen" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

最佳答案

这是在 TextBox 中使用触发器的示例

在使用此示例时,通过在 TextBox 中键入第 2 项或从 ComboBox 中选择它来触发相同

<StackPanel>
    <ComboBox x:Name="combo">
        <ComboBoxItem>item 1</ComboBoxItem>
        <ComboBoxItem>item 2</ComboBoxItem>
    </ComboBox>
    <TextBox Text="{Binding SelectedItem.Content,ElementName=combo}">
        <TextBox.Style>
            <Style TargetType="TextBox">
                <Style.Triggers>
                    <Trigger Property="Text"
                             Value="item 2">
                        <Setter Property="Background"
                                Value="LightGreen" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBox.Style>
    </TextBox>
</StackPanel>

在上面的示例中,TextBox 绑定(bind)到 ComboBox 的 Selected Item(只是为了模拟您的应用程序的行为)

如果 Text 属性包含第 2 项,则 TextBox 样式中的 Trigger 会更改 TextBox 的背景颜色以模拟突出显示

这只是触发器的一个基本概念,您可以利用您的创造力来实现所需的高亮行为,可能涉及闪烁的颜色、动画大小等。

关于WPF - 基于内容突出显示文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410783/

相关文章:

c# - 搜索 RichTextBox 并突出显示该特定单词的所有实例的方法

c# - TreeView 中 WPF RichTextBox 的拉伸(stretch)宽度

c# - 实现 INotifyPropertyChanged 的​​差异

wpf - 动态绑定(bind)菜单

c# - 系列数量未知的 XamDataChart

c# - 如何冒泡我的 ViewModel 层次结构中的更改?

Linux 上用于构建 WPF 应用程序的 .NET CI 服务器

c# - 0xC0020001 : The string binding is invalid. - 仅发生在 WPF 中

c# - josh smith 文章中提到的选项卡式界面问题

silverlight - 如何在 MVVM 中的两个 View 之间传递模型对象(在 View 中完成数据绑定(bind))