主窗体设计代码
<Window x:Class="LayoutPanels.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Menu" Height="400" Width="252"
>
<Grid>
<StackPanel Margin="5" Button.Click="ButtonClick">
<Button>SimpleStack</Button>
<Button>SimpleWrap</Button>
<Button>SimpleDock</Button>
<Button>BasicDialogBox</Button>
<Button>SimpleGrid</Button>
<Button>LayoutRoundingTest</Button>
<Button>SplitWindow</Button>
<Button>DoubleSplitWindow</Button>
<Button>SharedSizeGroup</Button>
<Button>SimpleCanvas</Button>
<Button>SimpleInkCanvas</Button>
<Button>TheUniformGrid</Button>
<Button>TextBoxColumn</Button>
<Button>LocalizableText</Button>
<Button>ModularContent</Button>
</StackPanel>
</Grid>
</Window>
关键代码为:
<StackPanel Margin="5" Button.Click="ButtonClick">
按钮实现代码:
private void ButtonClick(object sender, RoutedEventArgs e)
{
// 获取当前按钮
Button cmd = (Button)e.OriginalSource;
// 创建由当前按钮命名的窗口实例
Type type = this.GetType();
Assembly assembly = type.Assembly;
Window win = (Window)assembly.CreateInstance(type.Namespace + "." + cmd.Content);
// 显示窗口
win.Show();
}
记得添加引用:
using System.Reflection;