【发布时间】:2011-04-17 17:29:33
【问题描述】:
您好,我正在尝试将我正在做的事情放在代码背后的事件中,该触发器正在应用于文本框的样式的触发器中。我想要的是防止使用背后的代码来做到这一点并使用触发器。有没有办法做到这一点?
我的文本框
<TextBox Name="myTextBox" Style="{StaticResource txtBoxStyle}"/>
我的风格
<Style x:Key="txtBoxStyle" TargetType="{x:Type TextBox}">
<Setter Property="Foreground" Value="Silver"/>
<Setter Property="MaxLength" Value="6"/>
</Style>
代码背后的事件
private void myTextBox_LostFocus(object sender, RoutedEventArgs e)
{
if (myTextBox.Text.Length == 0)
myTextBox.Text = "000000";
}
private void myTextBox_GotFocus(object sender, RoutedEventArgs e)
{
if (myTextBox.Text == "000000")
myTextBox.Clear();
}
private void myTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (!(e.Key >= Key.D0 && e.Key <= Key.D9) && e.Key != Key.Back)
e.Handled = true;
}
private void myTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (myTextBox.Text == "000000")
myTextBox.Foreground = Brushes.Silver;
else
{
myTextBox.Foreground = Brushes.Black;
if(myTextBox.Text.Length == 6)
myButton.Visibility = Visibility.Visible;
else
myButton.Visibility = Visibility.Hidden;
}
}
提前致谢!
【问题讨论】: