如何通过Function / Method触发XAML效果?

时间:2012-11-10 06:10:11

标签: c# wpf xaml

我制作了一个文本框。它聚焦时会突出显示。用户在TextBox中输入文本并对用户输入的内容进行代码测试。如果输入数据不正确,那么我希望这个TextBox由BlurEffect处理(它在XAML中的wtites):

<Setter Property="Effect">
      <Setter.Value>
      <BlurEffect Opacity="1" Color="Red" BlurRadius="30"/>
 </Setter.Value>

如果输入数据不正确,此代码将捕获:

    private void Filter_textBox_KeyUp(object sender, KeyEventArgs e)
    {
        string str=Filter_textBox.Text;
        if (str == "bbb")
        {
            Filter_textBox.BitmapEffect = null;
            Filter_textBox.Foreground = Brushes.Black;
        }
        else
             //<BlurEffect Opacity="1" Color="Red" BlurRadius="30"/>

我希望在“else”的情况下触发“BlutEffect”。 怎么做?这是真的吗?

1 个答案:

答案 0 :(得分:1)

    private void Filter_textBox_KeyUp(object sender, KeyEventArgs e)
    {
        string str = Filter_textBox.Text;
        if (str == "bbb")
        {
            Filter_textBox.Effect = null;
            Filter_textBox.Foreground = Brushes.Black;
        }
        else
        {
            DropShadowEffect effect = new DropShadowEffect();
            effect.Opacity = 1;
            effect.Color = Colors.Red;
            effect.BlurRadius = 30;
            Filter_textBox.Effect = effect;
        }
    }

这正是您正在尝试做的事情。但这不是一个好习惯。使用DataTrigger可以获得相同的结果。