zoukankan      html  css  js  c++  java
  • WPF TriggerAction弹出子窗体 TargetedTrigger、TargetedTriggerAction用法

    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>
  • 相关阅读:
    chrome 修改请求头的小工具
    spring boot整合shiro引用配置文件配置是出现的问题
    jquery ztree 复选框
    表单input中disabled提交后得不到值的解决办法
    大文件编辑器
    记一次差点删库跑路的事故
    简单的记录一次简单的优化
    mysql 死锁解决办法
    centos6,7中防火墙基本用法
    案例3-ubuntu和centos中自动部署tomcat相关服务的脚本
  • 原文地址:https://www.cnblogs.com/czly/p/10233837.html
Copyright © 2011-2022 走看看