首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

wpf如何控制Textblock或StackPanel的背景色

2013-11-30 
wpf怎么控制Textblock或StackPanel的背景色如,我想文本框中的值为1的话,文本框或StackPanel的背景色为黄色

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;
        }
    }

前台xaml文件中:
<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>

这里我使用TextBox,当你输入1的时候,背景即变为红色

热点排行