Я хочу установить цвет фона элемента управления Expander в моем приложении WinUI3. При установке для свойства фона определенного цвета будет установлен только цвет развернутой панели.
<Grid Background = "CadetBlue">
<StackPanel Orientation = "Vertical" HorizontalAlignment = "Center" VerticalAlignment = "Top">
<Expander Header = "header" Content = "content" Background = "Black"/>
<Expander Header = "header" Content = "content"/>
</StackPanel>
</Grid>
Я также пытался установить свойство Header таким образом, но это тоже не увенчалось успехом.
<Expander>
<Expander.Header>
<Border Background = "SkyBlue">
<TextBlock Text = "HEADER" />
</Border>
</Expander.Header>
<TextBlock Text = "CONTENT" />
</Expander>
Я также пытался поместить его в рамку, но тогда цветные области были больше, чем контрольные:
<Border HorizontalAlignment = "Left" VerticalAlignment = "Center" Background = "SkyBlue" BorderBrush = "HotPink" BorderThickness = "1" CornerRadius = "{StaticResource ControlCornerRadius}">
<Expander Content = "CONTENT" Header = "HEADER" />
Как я могу правильно установить цвет фона заголовка или всего элемента управления?
Благодаря исходникам winui 3 вы можете увидеть, как создавался и работает экспандер... Здесь вы можете найти все ресурсы, используемые для фона, чтобы вы могли копировать, вставлять и перезаписывать их. Или вы можете скопировать и вставить стили и изменить их.
@Katana предоставила вам код ресурса Expander.
Найдите ExpanderHeaderBackground
в коде ресурса, а затем перепишите цвет его кисти в Expander.Resource
.
Если вы не знаете, как его использовать, вы можете обратиться к следующему коду.
<Grid Background = "CadetBlue">
<StackPanel Orientation = "Vertical" HorizontalAlignment = "Center" VerticalAlignment = "Top">
<Expander Header = "header" Content = "content" Background = "Black">
<Expander.Resources>
<SolidColorBrush x:Key = "customExpanderHeaderBackgroundColor" Color = "green"/>
<StaticResource x:Key = "ExpanderHeaderBackground" ResourceKey = "customExpanderHeaderBackgroundColor" />
</Expander.Resources>
</Expander>
<Expander Header = "header" Content = "content"/>
</StackPanel>
</Grid>