如何在不使用事件处理程序的情况下将控制从一个窗口转移到另一个窗口?

时间:2011-02-17 04:55:23

标签: wpf xaml binding attached-properties

我是编程新手,需要澄清以下内容......

我有一个文本框,其中自动生成文本。 要求:如果我现在突出显示文本框中的文本,则应打开一个新的wpf窗口。 (这需要在附加属性/非事件上使用wpf命令完成)

谢谢:) 请给我详细的回复代码..

1 个答案:

答案 0 :(得分:0)

这是一个非常奇怪的要求,但可以使用行为来完成。以下是一些示例标记:

<Grid>
    <TextBox Text="This is some text">
        <i:Interaction.Behaviors>
            <local:NewWindowOnSelectBehavior/>
        </i:Interaction.Behaviors>
    </TextBox>
</Grid>

以下是出于演示目的而显示消息框的行为:

public class NewWindowOnSelectBehavior : Behavior<TextBox>
{
    protected override void OnAttached()
    {
        AssociatedObject.SelectionChanged += (s, e) =>
        {
            if (!string.IsNullOrEmpty(AssociatedObject.SelectedText))
                MessageBox.Show("New Window");
        };
    }
}

此示例使用行为。如果您不熟悉行为,请安装Expression Blend 4 SDK并添加此命名空间:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

并将System.Windows.Interactivity添加到您的项目中。