在XAML中,我可以把自定义的行为就像一个文本框:如何将行为置于Silverlight中的TextBox样式中?
<TextBox>
<i:Interaction.Behaviors>
<My:TextBoxNewBehavior/>
</i:Interaction.Behaviors>
</TextBox>
我想所有的文本框有这种行为,所以如何把这种行为含蓄的风格是怎样的?
<Style TargetType="TextBox">
<Setter Property="BorderThickness" Value="1"/>
....
</Style>
更新: 感谢您的信息。尝试的方式如下建议和应用程序崩溃是:
<Setter Property="i:Interaction.Behaviors">
<Setter.Value>
<My:TextBoxNewBehavior/>
</Setter.Value>
</Setter>
我的行为是一样的东西:
public class TextBoxMyBehavior : Behavior<TextBox>
{
public TextBoxMyBehavior()
{
}
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.KeyUp += new System.Windows.Input.KeyEventHandler(AssociatedObject_KeyUp);
}
void AssociatedObject_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
//....
}
}
protected override void OnDetaching()
{
base.OnDetaching();
AssociatedObject.KeyUp -= new System.Windows.Input.KeyEventHandler(AssociatedObject_KeyUp);
}
}
TextBoxMyBehavior看起来像智力不出来。
你说“应用程序崩溃”什么是异常消息,stacktrace? – nemesv
它表示无法强制类型MyNameSpace:TextBoxNewBehavior类型....但如果我直接将它放在xaml中,没有问题。困惑。 – KentZhou
看起来并不那么容易......但我在这里发现了同样的问题,所以我正在投票结束这一个。 – nemesv