【问题标题】:How to transfer control from one window to another without the use of an event handler?如何在不使用事件处理程序的情况下将控制从一个窗口转移到另一个窗口?
【发布时间】:2011-02-17 04:55:23
【问题描述】:

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

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

谢谢 :) P.s 请给我详细的代码以便回复..

【问题讨论】:

    标签: wpf xaml binding attached-properties


    【解决方案1】:

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

    <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 添加到您的项目中。

    【讨论】:

      猜你喜欢
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多