<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();
}
}
}
}