C# 尝试将SolidColorBrush资源应用于HeaderedContentControl边框笔刷

C# 尝试将SolidColorBrush资源应用于HeaderedContentControl边框笔刷,c#,wpf,xaml,solidcolorbrush,C#,Wpf,Xaml,Solidcolorbrush,我想将窗口中的SolidColorBrush链接到字典中的另一个SolidColorBrush。我没有找到像这样的东西,也许这是不可能的 以下是我的“ResourceDictionary.xaml”中的代码 在我的windows中,我需要一个指向此资源的链接,如下所示: <SolidColorBrush x:Key="ControlColor" Color="{Binding Source={DynamicResource BrushEvasanOrange}}"/> 现在

我想将窗口中的SolidColorBrush链接到字典中的另一个SolidColorBrush。我没有找到像这样的东西,也许这是不可能的

以下是我的“ResourceDictionary.xaml”中的代码


在我的windows中,我需要一个指向此资源的链接,如下所示:

<SolidColorBrush x:Key="ControlColor" Color="{Binding Source={DynamicResource BrushEvasanOrange}}"/>

现在,这个代码不起作用

我想使用此链接,因为我想在我的页面中以多个“”的形式使用此资源,如果将来必须更改颜色,则可以很容易地用这种方式更改

笔刷资源的使用方式如下:

<HeaderedContentControl 
    x:Name="_demandeur" 
    BorderBrush="{DynamicResource BrushEncadre}" 
    BorderThickness="1" 
    Padding="10" 
    Margin="0,20,0,0" 
    Header="{x:Static p:Resources.EV_Demandeur}"
    >
    <WrapPanel 
        Margin="0" 
        Orientation="Horizontal" 
        HorizontalAlignment="Left"
        >
        <TextBlock 
            TextWrapping="Wrap" 
            FontWeight="Normal" 
            Text="text"
            />
    </WrapPanel>
</HeaderedContentControl>

听起来您的问题是
HeaderedContentControl
忽略了它的
BorderBrush
属性。有两种方法可以解决此问题:一种是将
HeaderedContentControl
模板
替换为在内容周围显示边框的模板,但这会带来很多麻烦。另一种方法是使用
HeaderedContentControl
的子类,该子类已经有了您想要的模板(我们将在最后讨论)

一个非常简单的选项是简单地在控件周围放置
边框
,并将
边距
移动到
边框
,这样橙色边框线将位于边距内。在您的具体案例中,这不是正确的答案,但对于“如何在XAML中为事物设置边界”来说,这是一个很好的一般性答案


你的代码无法工作。为什么不将字典作为合并字典嵌入到app.xaml中呢。然后,字典中的所有资源都是应用程序的全局资源,您可以从任何其他应用程序引用它们。xaml(窗口、页面、用户控制)将颜色定义为资源:
\33006D8F
然后将其用于两个笔刷:
@jure:Thnaks作为您的答案,但实际上是我的“ResourceDictionary.xaml”已经是一个可以在每个xaml中使用的合并词汇表。我只想在用户控件中使用指向其他颜色的链接来实现许多“HeaderedContentControl”。首先,如果我必须更改所有“HeaderedContentControl”的颜色,我将很容易更改此链接。@EdPlunkett:谢谢你的回答,但在我的解决方案中它不起作用。我将您的代码示例用于“HeaderedContentControl/BorderBrush”,并且视图中没有颜色。。。这是一个好主意,所以可能是我犯了一个错误,或者在这个例子中,在不能工作^^@StefG中,你能发布你尝试过的吗?什么不管用?非常感谢Ed Plunkett,它可以与GroupBox一起使用,即使是我的风格^^我以前不知道GroupBox,我唯一要做的就是用它取代我的HeaderedContentControl。谢谢;D@StefG很高兴听到这个消息!
<HeaderedContentControl 
    x:Name="_demandeur" 
    BorderBrush="{DynamicResource BrushEncadre}" 
    BorderThickness="1" 
    Padding="10" 
    Margin="0,20,0,0" 
    Header="{x:Static p:Resources.EV_Demandeur}"
    >
    <WrapPanel 
        Margin="0" 
        Orientation="Horizontal" 
        HorizontalAlignment="Left"
        >
        <TextBlock 
            TextWrapping="Wrap" 
            FontWeight="Normal" 
            Text="text"
            />
    </WrapPanel>
</HeaderedContentControl>
<Border
    BorderBrush="{StaticResource BrushEncadre}" 
    BorderThickness="1" 
    Margin="0,20,0,0" 
    >
    <HeaderedContentControl 
        x:Name="_demandeur" 
        Padding="10" 
        Header="{x:Static p:Resources.EV_Demandeur}"
        >
        <WrapPanel 
            Margin="0" 
            Orientation="Horizontal" 
            HorizontalAlignment="Left" >
            <TextBlock 
                TextWrapping="Wrap" 
                FontWeight="Normal" 
                Text="text"
                />
        </WrapPanel>
    </HeaderedContentControl>
</Border>
<GroupBox 
    x:Name="_demandeur" 
    Padding="10" 
    Margin="0,20,0,0" 
    Header="{x:Static p:Resources.EV_Demandeur}"
    BorderBrush="{StaticResource BrushEncadre}" 
    BorderThickness="1" 
    >
    <WrapPanel 
        Margin="0" 
        Orientation="Horizontal" 
        HorizontalAlignment="Left" >
        <TextBlock 
            TextWrapping="Wrap" 
            FontWeight="Normal" 
            Text="text"
            />
    </WrapPanel>
</GroupBox>