wpf怎么控制Textblock或StackPanel的背景色
如,我想文本框中的值为1的话,文本框或StackPanel的背景色为黄色,其他的话为默认。怎么做呀?
在线等
有的啊~
[解决办法]
你在TextChanged事件判断他的Text属性,对应改变Background属性
[解决办法]
一般来说这样的东西可以使用Converter来写:
后台Converter的写法如下(这里Converter和我们的程序在同一个项目中)
public class BrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == "") {
return System.Windows.Media.Brushes.Transparent;
}
if (value.ToString() == "1")
{
return System.Windows.Media.Brushes.Red;
}
return System.Windows.Media.Brushes.Transparent;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication2"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:BrushConverter x:Key="brushConverter"></local:BrushConverter>
</Window.Resources>
<Grid>
<TextBox Name="txt" Background="{Binding Path=Text,ElementName=txt,Converter={StaticResource brushConverter}}" />
</Grid>
</Window>