WPF(x:Type的使用)

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


原文地址:https://www.cnblogs.com/wjchang/p/3671540.html