WPF存储资源中的布局

时间:2009-04-13 16:21:13

标签: wpf

我有默认Window边框关闭的应用程序

窗口标记定义如下所示:

<Window x:Class="TEA.UI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Title" WindowStyle="None" AllowsTransparency="True" Background="Transparent">

Inside Window标签中有Grid面板,它包含几个Rectangle形状和很少的其他网格。

看起来像这样:

<Grid>
    <!-- WINDOW BACKGROUND -->
    <Rectangle Stroke="#FF214E80" RadiusX="3" RadiusY="3" ClipToBounds="True">
        <Rectangle.Fill>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#FF193C6C" Offset="0"/>
                <GradientStop Color="#FF2A65A4" Offset="1"/>
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>
    <!-- // WINDOW BACKGROUND -->

    <!-- HEADER HIGHLIGHT2 -->
    <Rectangle HorizontalAlignment="Stretch" Margin="2,2,2,0" VerticalAlignment="Top" Height="62" RadiusX="2" RadiusY="2">
        <Rectangle.Fill>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#00193C6C" Offset="1"/>
                <GradientStop Color="#4C96ABC3" Offset="0"/>
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>
    <!-- // HEADER HIGHLIGHT2 -->
<Grid>
    ....
</Grid>

这些矩形形状也用于其他窗口对话框。

我的问题是:

如何将这些重新整理存储在WPF资源字典中?

我如何能够引用它们?

2 个答案:

答案 0 :(得分:1)

实际上解决方案非常简单 WPF UserControl为我做了诀窍

答案 1 :(得分:0)

您可以在资源字典中为这些项目创建一个样式,其中包含每个属性的setter - 包括下面的一个。

<Style TargetType="{x:Type Rectangle}" x:Key="WindowBackground">
  <Setter Property="Stroke" Value="#FF214E80"/>
</Style>

然后在你的窗口中你可以引用这样的风格..

<Rectangle Style="{StaticResource WindowBackground}"/>