尝试将 SolidColorBrush 资源应用于 HeaderedContentControl BorderBrush
Trying to apply SolidColorBrush resource to HeaderedContentControl BorderBrush
我想 link 我的 Window 中的一个 SolidColorBrush 到我的字典中的另一个 SolidColorBrush。我没有找到这样的东西,可能是不可能的...
这是我的 "ResourceDictionary.xaml"
中的代码
<SolidColorBrush x:Key="BrushBlueTransparent" Color="#33006D8F"/>
在我的 windows 中,我想要一个 link 这个资源,如下所示:
<SolidColorBrush x:Key="ControlColor" Color="{Binding Source={DynamicResource BrushEvasanOrange}}"/>
目前,此代码不起作用...
我想使用这个 link 因为我想在我的页面中以多个“”使用这个资源,如果将来必须改变颜色,用这种方式可以很容易地改变.
画笔资源是这样使用的:
<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
的 Template
替换为在内容周围显示边框的方法,但这很麻烦。另一种方法是使用 HeaderedContentControl
的子 class,它已经有了您想要的模板(我们将在最后进行)。
一个非常简单的选项是简单地在控件周围放置一个 Border
,并将 Margin
也移动到 Border
,因此橙色边框线将位于利润。在您的具体情况下,这不是正确的答案,但它是对 "how do I put a border around things in 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
是各种控件的基础 class,这些控件显示带有 header 的内容。 subclasses 更常用,我感觉你在这里真正想要的是 GroupBox
,它是那些 subclasses 之一。您可以像使用 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>
我想 link 我的 Window 中的一个 SolidColorBrush 到我的字典中的另一个 SolidColorBrush。我没有找到这样的东西,可能是不可能的...
这是我的 "ResourceDictionary.xaml"
中的代码<SolidColorBrush x:Key="BrushBlueTransparent" Color="#33006D8F"/>
在我的 windows 中,我想要一个 link 这个资源,如下所示:
<SolidColorBrush x:Key="ControlColor" Color="{Binding Source={DynamicResource BrushEvasanOrange}}"/>
目前,此代码不起作用...
我想使用这个 link 因为我想在我的页面中以多个“”使用这个资源,如果将来必须改变颜色,用这种方式可以很容易地改变.
画笔资源是这样使用的:
<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
的 Template
替换为在内容周围显示边框的方法,但这很麻烦。另一种方法是使用 HeaderedContentControl
的子 class,它已经有了您想要的模板(我们将在最后进行)。
一个非常简单的选项是简单地在控件周围放置一个 Border
,并将 Margin
也移动到 Border
,因此橙色边框线将位于利润。在您的具体情况下,这不是正确的答案,但它是对 "how do I put a border around things in 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
是各种控件的基础 class,这些控件显示带有 header 的内容。 subclasses 更常用,我感觉你在这里真正想要的是 GroupBox
,它是那些 subclasses 之一。您可以像使用 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>