Попытка применить ресурс SolidColorBrush к HeaderedContentControl BorderBrush
Я бы хотел связать 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>
1 ответ
Похоже, ваша проблема в том, что HeaderedContentControl
игнорирует его BorderBrush
имущество. Есть два способа исправить это: один - заменить HeaderedContentControl
"s 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>