WPF TriggerAction弹出子窗体 TargetedTriggerTargetedTriggerAction用法

Posted czly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF TriggerAction弹出子窗体 TargetedTriggerTargetedTriggerAction用法相关的知识,希望对你有一定的参考价值。

namespace TriggerAction
{
    public class OpenWindowAction : TriggerAction<DependencyObject>
    {


        public Type WindowType
        {
            get { return (Type)GetValue(WindowTypeProperty); }
            set { SetValue(WindowTypeProperty, value); }
        }

        public static readonly DependencyProperty WindowTypeProperty =
            DependencyProperty.Register("WindowType", typeof(Type), typeof(OpenWindowAction), new PropertyMetadata(null));



        protected override void Invoke(object parameter)
        {
           var windowObj=  Activator.CreateInstance(WindowType) as Window;
            windowObj.ShowDialog();
        }
    }

    public class ButtonAction : TriggerAction<Button>
    {
        protected override void Invoke(object parameter)
        {
            this.AssociatedObject.Content = DateTime.Now.ToString();
        }
    }

    public class ButtonTargetAction : TargetedTriggerAction<Button>
    {
        protected override void Invoke(object parameter)
        {
            this.Target.Content = this.Target.Content + "1";
        }
    }
}
<Window x:Class="TriggerAction.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
        xmlns:local="clr-namespace:TriggerAction"
        
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button Content="Button" HorizontalAlignment="Left" Margin="531,122,0,0" VerticalAlignment="Top" Width="164" Height="46">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Click">
                    <local:OpenWindowAction WindowType="{x:Type local:Window1}" />
                    <local:ButtonAction />
                    <local:ButtonTargetAction TargetName="aaa" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>
        <Button x:Name="aaa" Content="Button" HorizontalAlignment="Left" Margin="531,238,0,0" VerticalAlignment="Top" Width="103" Height="30"/>

    </Grid>
</Window>

 

以上是关于WPF TriggerAction弹出子窗体 TargetedTriggerTargetedTriggerAction用法的主要内容,如果未能解决你的问题,请参考以下文章

delphi7怎么弹出子窗口

WPF FileFolderDialog 和弹出子窗口的一些问题

WPF:设置弹出子菜单的是否可用状态及效果

Qt按钮点击弹出子对话框,然后父窗口不可点击怎么弄

WPF的WebBrowser屏蔽弹出脚本错误窗体

WPF之弹出另外一个窗体