Xaml 如何设置UWP中分级控制星的颜色?

Xaml 如何设置UWP中分级控制星的颜色?,xaml,uwp,Xaml,Uwp,我在我的UWP应用程序中添加了一个分级控制。如何设置填充星星和空星星的颜色?以下是我添加的代码: <RatingControl x:Name="MyRating" Value="3.5" Width="300" Height="200" /> 如果检查分级控制的默认样式,可以找到以下VisualStateGroup: <RatingControl x:Name="MyRating" Value="3.5" Width="300" Height="200" /> &

我在我的UWP应用程序中添加了一个
分级控制。如何设置填充星星和空星星的颜色?以下是我添加的代码:

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

如果检查
分级控制的默认样式,可以找到以下
VisualStateGroup

<RatingControl x:Name="MyRating" Value="3.5" Width="300" Height="200"  />
<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>
您可以在任何父级上执行覆盖,如在页面上:

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

或者,如果您将其添加到
App.xaml
中的
,则可以将其放在应用程序级别。然后它将应用于应用程序中的任何
分级控制

<RatingControl x:Name="MyRating" Value="3.5" Width="300" Height="200"  />
替代解决方案-自定义样式 如果需要更多的控制和更好的自定义,可以直接编辑默认的
RatingControl
样式及其模板。 右键单击Designer(或文档大纲窗口)中的
分级控件
,选择编辑样式,然后编辑副本,设置自定义名称和放置样式的位置,并用确定确认。这将创建控件默认模板的副本,您可以在其中编辑
VisualState
Setter
值以匹配所需的配色方案

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

还要注意的是,您仍然需要为空星号
RatingControlUnselectedForeground
)提供自定义资源。

谢谢。它适用于填充星号。但是空星号呢。如果它解决了这个问题,请考虑把它标记为解决方案,这样问题就结束了。请您说明如何设置评级星的宽度和高度,宽度和高度属性,为它的边界而不是SARSEIT,最好把这个问题标记为解决,并为此提出一个新的问题。最后我可以改变空星星的颜色。
<RatingControl x:Name="MyRating" Value="3.5" Width="300" Height="200"  />