正在尝试将SolidColorBrush资源应用于HeaderedContentControl BorderBrush

本文关键字:资源 应用于 HeaderedContentControl BorderBrush SolidColorBrush | 更新日期: 2023-09-27 18:29:34

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

这是我的"ResourceDictionary.xaml"中的代码

<SolidColorBrush x:Key="BrushBlueTransparent" Color="#33006D8F"/>

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

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

目前,此代码不起作用。。。

我想使用这个链接,因为我想在我的页面中多次使用这个资源,如果将来必须更改颜色,用这种方式更改可能很容易。

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>

正在尝试将SolidColorBrush资源应用于HeaderedContentControl BorderBrush

听起来你的问题是HeaderedContentControl忽略了它的BorderBrush属性。有两种方法可以解决这个问题:一种是用在内容周围显示边框的方法替换HeaderedContentControlTemplate,但这会带来很多麻烦。另一个是使用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是否真的是你想要的。CCD_ 10是用于显示具有标题的内容的各种控件的基类。子类更常用,我有一种感觉,你在这里真正想要的是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>