UWP设置NavigationView的TogglePaneButton颜色

时间:2019-09-12 11:09:47

标签: c# xaml uwp win-universal-app navigationview

从图像中可以看到,TogglePaneButton具有与其余颜色不同的颜色。

enter image description here

那是因为我以WhiteSmoke Compact的源代码处于LeftMinimal模式时,将其手动设置为VisualState(实际上在我的推送代码中已经是灰色)。

enter image description here

我以为可以在打开窗格时通过修改其可视状态来将其更改回去:

<VisualState x:Name="Expanded">
    <VisualState.Setters>
        <Setter Target="RootSplitView.PaneBackground" Value="{ThemeResource MainNavigationViewBackground}" />
        <Setter Target="TogglePaneButton.Background" Value="{ThemeResource MainNavigationViewBackground}" />
    </VisualState.Setters>
</VisualState>

但是它不起作用。我该如何实现?

该代码已超过30000个字符,因此我只能发布链接:

https://github.com/SeakyLuo/SMPlayer/blob/master/SMPlayer/Dictionaries/MainNavigationView.xaml

2 个答案:

答案 0 :(得分:0)

这里的问题是VisualStates对不同类型的窗格模式有反应,而对open / closed事件没有反应。

我建议给按钮本身一个Transparent背景,并在按钮和窗格下面显示一个彩色的Border。当窗格关闭并处于最小模式时,按钮下方的边框将使其看起来好像按钮具有正确的背景色。窗格打开时,它将绘制在Border的上方上,并且按钮的背景与窗格相同。

答案 1 :(得分:0)

我找到了一个非常简单的解决方案:

只需再制作一个TogglePaneButton并将其放在原始名称上即可。然后让它成为真正的作品。在需要时将其可见性设置为Collapsed