【发布时间】:2012-03-17 19:14:58
【问题描述】:
我一直在努力学习资源和样式,我想创建一个无镶边窗口。
我有一个示例可以通过以下简单的 xaml 提取来实现我想要的。
我在 Themes/Generic.xaml 中有一个资源集
<Style x:Key="BorderlessWindowStyle" TargetType="{x:Type Window}">
<Setter Property="AllowsTransparency" Value="true" />
<Setter Property="WindowStyle" Value="None" />
<Setter Property="ResizeMode" Value="CanResizeWithGrip" />
<Setter Property="Background" Value="Transparent" />
</Style>
我有一个主窗口:
<Window x:Class="Project1.Shell"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Project1"
x:Name="Window"
Title="Shell" Height="576" Width="1024" Style="{DynamicResource BorderlessWindowStyle}">
<Grid></Grid>
但是样式没有被应用,并且 VS 设计器声明它无法解析资源。
我一直在查看的示例以这种方式进行操作,我无法发现我所看到的所做的与我正在尝试做的之间的区别。
我认为 Genric.xaml 是一个“特殊”资源字典,应该可以通过我的 Window 控件发现 - 我猜这个假设是我的错误。
我需要做什么才能完成这项工作? (现在我知道我可以直接在 Window xaml 中设置这些属性,并且我已经这样做并获得了我想要的效果。但是我真的很想使用 Generic.xaml 资源字典的方式来了解我在此处介绍的方式)
最好的问候
约翰。
【问题讨论】:
-
你试过运行你的程序吗?那样有用吗?可能是 VS 设计器在这方面受到限制,因为 DynamicResources 是在运行时而不是在编译时评估的。
-
是的,我确实运行了应用程序,但没有应用样式。
-
尝试将 Generic.xaml 更改为 generic.xaml
-
不幸的是,这也不起作用。为了最初创建 Generic.xaml,我创建了一个自定义控件,以便 Visual Studio 为我添加它,然后删除不需要的自定义控件。我这样做是为了消除任何人为错误的可能性。
-
我将它添加到 App.xaml
现在它可以工作了。我认为对于 Generic.xaml 这不是必需的。我有点困惑。
标签: wpf