若传入参数为类型的时候 用x:Type 指定此类型值
有如下一自定义按钮类型:
public class MyButton : Button
{
public Type MyUserType { get; set; }
protected override void OnClick()
{
base.OnClick();
Window win = Activator.CreateInstance(MyUserType) as Window;
if (win != null)
{
win.ShowDialog();
}
}
}
希望的效果是在点击此按钮的时候弹出另外一个MyWindow窗体
首相在当前窗体上放置此按钮
<local:MyButton x:Name="mybtn" Content="My Button" MyUserType="{x:Type Type=local:MyWindow}"></local:MyButton>
然后定义这个MyWindow窗体:
<Window x:Class="WpfApplication1.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" Loaded="Window_Loaded">
<TextBlock x:Name="block" Text="Hello Buddy"></TextBlock>
</Window>