我有一个模式对话框,我正在使用 WPF 扩展工具包显示,ChildWindow
但我不喜欢窗口的默认外观,因为它不正确支持系统颜色(它具有强制白色背景)并且不适应 Windows使用时的经典外壳。
因此,我试图创建自己的样式,ChildWindow
但这样做我破坏了控件的对话框行为 - 我将如何设置它的样式以恢复这种行为?
我的对话框样式如下。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpfToolkit="http://schemas.xceed.com/wpf/xaml/toolkit">
<Style TargetType="wpfToolkit:ChildWindow">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="wpfToolkit:ChildWindow">
<!--<Window WindowState="{TemplateBinding WindowState}" Visibility="{TemplateBinding Visibility}" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}">-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Grid.RowSpan="2"
BorderThickness="2"
BorderBrush="Gold"/>
<Rectangle>
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStop Color="Lime"/>
<GradientStop Color="DarkGreen"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<TextBlock Foreground="White" Text="{TemplateBinding Caption}"/>
<ContentPresenter Grid.Row="1"/>
</Grid>
<!--</Window>-->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
我尝试将它嵌套在一个窗口中以恢复对话框行为,但我得到一个运行时异常“窗口必须是树的根。不能将窗口添加为 Visual 的子级。”。我的风格需要什么?