我想创建一个从 ContentControl 派生的新自定义控件(它将是窗口中其他控件的容器),但我想要一个按钮来关闭它。(实际上我想要一个无边框的窗口,但使用类似系统的按钮来关闭它)。
所以我为包含两行网格的控件创建了样式,在上一行有一个带有单个按钮的 StackPanel。
如何将按钮的 Click 事件绑定到控件本身,以引发事件,甚至将关闭命令发送到父窗口?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20" />
<RowDefinition />
</Grid.RowDefinitions>
<Border Background="Azure" Grid.Row="0">
<StackPanel Orientation="Horizontal">
<Button HorizontalAlignment="Right" Content="X" Click="Close_Click" />
</StackPanel>
</Border>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="1"/>
</Grid>
以及背后的代码:
static STContentControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(STContentControl), new FrameworkPropertyMetadata(typeof(STContentControl)));
}
public void Close_Click(object sender, RoutedEventArgs ea)
{
}