gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:36:27 25 4
gpt4 key购买 nike

我正在学习 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com