gpt4 book ai didi

xaml - 如何在UWP中设置RatingControl星星的颜色?

转载 作者:行者123 更新时间:2023-12-02 03:27:26 27 4
gpt4 key购买 nike

我在我的 UWP 应用程序中添加了一个 RatingControl。如何设置实心星星和空心星星的颜色?这是我添加的代码:

<RatingControl x:Name="MyRating" Value="3.5" Width="300" Height="200"  />

最佳答案

如果检查 RatingControl 的默认样式,您可以找到以下VisualStateGroup :

<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="ForegroundContentPresenter.Foreground"
Value="{ThemeResource RatingControlDisabledSelectedForeground}"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Placeholder">
<VisualState.Setters>
<Setter Target="ForegroundContentPresenter.Foreground"
Value="{ThemeResource RatingControlPlaceholderForeground}"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="PointerOverPlaceholder">
<VisualState.Setters>
<Setter Target="ForegroundContentPresenter.Foreground"
Value="{ThemeResource RatingControlPointerOverPlaceholderForeground}"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="PointerOverUnselected">
<VisualState.Setters>
<Setter Target="ForegroundContentPresenter.Foreground"
Value="{ThemeResource RatingControlPointerOverUnselectedForeground}"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Set">
<VisualState.Setters>
<Setter Target="ForegroundContentPresenter.Foreground"
Value="{ThemeResource RatingControlSelectedForeground}"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="PointerOverSet">
<VisualState.Setters>
<Setter Target="ForegroundContentPresenter.Foreground"
Value="{ThemeResource RatingControlSelectedForeground}"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>

如您所见,颜色基于 RatingControlSelectedForeground 等资源, RatingControlPointerOverUnselectedForeground等等

您可以将这些作为单独的资源提供自定义覆盖,也可以编辑控件的样式。

注意 - 空星星颜色

虽然它不是模板的一部分,但您可以通过修改RatingControlUnselectedForeground来自定义空星星颜色。资源。

资源覆盖

您可以覆盖单个评级控件级别、任何父级或应用程序级别的资源。

覆盖RatingControl级别仅适用于此单曲 RatingControl :

<RatingControl x:Name="MyRating" Value="3.5" Width="300" Height="200" >
<RatingControl.Resources>
<SolidColorBrush x:Key="RatingControlSelectedForeground" Color="Red" />
<SolidColorBrush Color="Blue" x:Key="RatingControlUnselectedForeground" />
</RatingControl.Resources>
</RatingControl>

您可以对任何父级进行覆盖,例如在页面上:

<Page.Resources>
<SolidColorBrush x:Key="RatingControlSelectedForeground" Color="Red" />
<SolidColorBrush Color="Blue" x:Key="RatingControlUnselectedForeground" />
</Page.Resources>

或者最后,如果您将其添加到 <Application.Resources> 中,您可以将其置于应用程序级别在App.xaml 。那么它将适用于任何 RatingControl在应用程序中。

替代解决方案 - 自定义样式

如果您想要更多控制和更好的自定义,可以直接编辑默认 RatingControl样式及其模板。右键单击 RatingControl在设计器(或文档大纲窗口)中,选择编辑样式,然后选择编辑副本,设置自定义名称和放置样式的位置,并使用确认>好的。这将创建控件默认模板的副本,您可以在其中编辑 VisualState Setter值以匹配您所需的配色方案。

另请注意,您仍然需要为空星星 ( RatingControlUnselectedForeground ) 提供自定义资源。

关于xaml - 如何在UWP中设置RatingControl星星的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52847841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com