尝试将SolidColorBrush资源应用于HeaderedContentControl BorderBrush

时间:2016-01-08 15:51:09

标签: c# wpf xaml solidcolorbrush

我想在我的词典中将SolidColorBrush从我的窗口链接到另一个SolidColorBrush。我没有找到这样的东西,可能是不可能......

这是我" ResourceDictionary.xaml"

中的代码
<SolidColorBrush x:Key="BrushBlueTransparent" Color="#33006D8F"/>

在我的窗口中,我想要一个这样的资源链接:

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

目前,这段代码不起作用......

我想使用此链接,因为我想在我的页面中使用此资源的多个&#34;&#34;如果颜色必须在未来中改变,那么用这种方式就可以很容易地改变颜色。

Brush资源的使用方式如下:

<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>

1 个答案:

答案 0 :(得分:0)

听起来你的问题是HeaderedContentControl忽略了它的BorderBrush属性。有两种方法可以解决此问题:一种方法是将HeaderedContentControl的{​​{1}}替换为显示内容边框的Template,但这样做很麻烦。另一个是使用HeaderedContentControl的子类,它已经有了你想要的模板(我们将最后到达那个)。

一个非常简单的选项是简单地在控件周围放置Border,并将Margin移动到Border,这样橙色边框线就会位于边距内。在你的特定情况下,这不是正确的答案,但它是一个很好的一般答案“我如何在XAML中放置边框?”

<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>

但我想知道HeaderedContentControl是否真的是你想要的。 HeaderedContentControl是各种控件的基类,用于显示带标题的内容。子类更常用,我觉得你真正想要的是GroupBox,这是其中一个子类。您只是按照HeaderedContentControl

的方式使用它
<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>