WPF 路由事件简单实例

在Winform窗体中,添加一个按钮然后双击按钮就可以在.cs代码自动生成有关事件的代码,这就是一个简单的事件模型,但是如果对于大型的设计界面,数量过多的控件通过每次都生成相关的时间代码,将是一个好大的时间与控件的浪费,如何解决这个问题,可以用路由事件解决(通俗笼统的解释,详解自行查阅),路由事件包括(隧道路由,冒泡路由)

1.下面我们从实例开始;

//将路由事件放入 MainWindow()构造函数中订阅 

 public void InitialTxtChange()
        {
            this.Power_Value.AddHandler(TextBox.KeyDownEvent, new RoutedEventHandler(Txt_Tension));
            this.Grid_RadioButton.AddHandler(RadioButton.ClickEvent, new RoutedEventHandler(Rtn_Tension));

        }

   /// <summary>
        /// 点击选择正面或反面
        /// </summary>
        private void Rtn_Tension(object sender, RoutedEventArgs e)
        {
                UIElement s = (UIElement)e.OriginalSource;   //可视树起始元素            
                RadioButton Rad = new RadioButton();
                Rad = s as RadioButton;      //获取选中的控件

               //RadioButton Rad =new RadioButton();

                 //Rad= RadioButton as Sender
                switch (Rad.Name)   //根据选中的控件名称进行操作
                {
                    case "Rtn_Front": MessageBox.Show("正面"); break;
                    case "Rtn_Back" :  MessageBox.Show("背面"; break;
                }
        } 

2.XAML中代码部分

<Grid Grid.Row="3" Grid.Column="1" Name="Grid_RadioButton">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="5*"/>
                        <ColumnDefinition Width="1.66*"/>
                        <ColumnDefinition Width="1.66*"/>
                        <ColumnDefinition Width="1.66*"/>
                    </Grid.ColumnDefinitions>
                    <!--<Border Grid.Column="1" Grid.ColumnSpan="2" BorderBrush="LightBlue" BorderThickness="1"></Border>-->
                    <RadioButton Name="Rtn_Front" Grid.Column="1" IsChecked="True" Content="正面" Style="{StaticResource FontFamilyRadioButton}"></RadioButton>
                    <RadioButton Name="Rtn_Back" Grid.Column="2" Content="背面" Style="{StaticResource FontFamilyRadioButton}" ></RadioButton>
                    <TextBox HorizontalAlignment="Left" Width="250" Name="Txt_PCBNumber" Margin="1" MaxHeight="20" ></TextBox>
                </Grid>

3.运行结果

猜你喜欢

转载自blog.csdn.net/mason852852/article/details/83626181