1.首先簡單設計一下界面:
添加了Click
事件
<Window x:Class="WpfApp.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:local="clr-namespace:WpfApp"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Name="addButtonSp" Margin="5">
<Button FontSize="20" Foreground="Blue" Click="OnButtonClick">在窗口加入按鈕</Button>
</StackPanel>
</ScrollViewer>
</Window>
2.在代碼部分,簡單設計一下控件屬性
就是在點擊上面Button
按鈕時,界面自動添加一個按鈕
private void OnButtonClick(object sender, RoutedEventArgs e)
{
Button btn = new Button();
btn.Background = Brushes.LightBlue;
btn.Foreground = Brushes.Yellow;
btn.Height = 50;
btn.Content = "按鈕";
btn.Click += new RoutedEventHandler(mes);
addButtonSp.Children.Add(btn);
}
重點來了,
btn.Click += new RoutedEventHandler(mes);
這行代碼,就是用來指定所添加的button
控件的點擊事件,必須要用RoutedEventHandler()
,其次()
里面是被調用的事件函數,請往下看:
private void mes(object sender, RoutedEventArgs e)
,注意參數寫法
private void mes(object sender, RoutedEventArgs e)
{
MessageBoxResult a = MessageBox.Show("你點擊了?", "Tip",MessageBoxButton.YesNoCancel,MessageBoxImage.Error);
if (a == MessageBoxResult.Yes)
{
MessageBox.Show("你又點擊了?", "haha", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
}
這部分的全部代碼
/// <summary>
/// MainWindow.xaml 的交互邏輯
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void OnButtonClick(object sender, RoutedEventArgs e)
{
Button btn = new Button();
btn.Background = Brushes.LightBlue;
btn.Foreground = Brushes.Yellow;
btn.Height = 50;
btn.Content = "按鈕";
btn.Click += new RoutedEventHandler(mes);
addButtonSp.Children.Add(btn);
}
private void mes(object sender, RoutedEventArgs e)
{
MessageBoxResult a = MessageBox.Show("你點擊了?", "Tip",MessageBoxButton.YesNoCancel,MessageBoxImage.Error);
if (a == MessageBoxResult.Yes)
{
MessageBox.Show("你又點擊了?", "haha", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
else if(a == MessageBoxResult.No)
{
this.Close();
}
}
3.結果
a.啟動界面
b.瘋狂加入按鈕
c.隨機點擊一個按鈕
添加button控件,再通過此控件調用其它函數,成功了O(∩_∩)O哈哈~
花絮:
其實,在實驗二 圖層操作.pdf
中,老師給的代碼就用了這個代碼(>‿◠)✌