Xaml 如何设置UWP中分级控制星的颜色?
我在我的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" /> &
分级控制。如何设置填充星星和空星星的颜色?以下是我添加的代码:
<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" />