<Window x:Class="TestOfKey.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:TestOfKey" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <sys:String x:Key="myString">Hello WPF Resource!</sys:String> </Window.Resources> <StackPanel Background="Gray" > <TextBox Text="{StaticResource ResourceKey=myString}" Margin="5" /> <TextBox x:Name="textBox1" Margin="5" /> <Button Content="Show" Click="ButtonClick" Margin="5" /> <local:MyButton Content="Show Dialog" UserWindowType="{x:Type TypeName=local:MyWindow}" Margin="5" /> </StackPanel> </Window>
<Window x:Class="TestOfKey.MyWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MyWindow" Height="300" Width="300"> <StackPanel Background="LightBlue"> <TextBox Margin="5" /> <TextBox Margin="5" /> <TextBox Margin="5" /> <Button Content="OK" Margin="5" /> </StackPanel> </Window>
using System; using System.Windows; using System.Windows.Controls; namespace TestOfKey { public class MyButton : Button { public Type UserWindowType { get; set; } protected override void OnClick() { base.OnClick(); Window win = Activator.CreateInstance(this.UserWindowType) as Window; if (win != null) { win.ShowDialog(); } } } }