从图像中可以看到,TogglePaneButton
具有与其余颜色不同的颜色。
那是因为我以WhiteSmoke
Compact的源代码处于LeftMinimal
模式时,将其手动设置为VisualState
(实际上在我的推送代码中已经是灰色)。
我以为可以在打开窗格时通过修改其可视状态来将其更改回去:
<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
答案 0 :(得分:0)
这里的问题是VisualStates
对不同类型的窗格模式有反应,而对open / closed事件没有反应。
我建议给按钮本身一个Transparent
背景,并在按钮和窗格下面显示一个彩色的Border
。当窗格关闭并处于最小模式时,按钮下方的边框将使其看起来好像按钮具有正确的背景色。窗格打开时,它将绘制在Border
的上方上,并且按钮的背景与窗格相同。
答案 1 :(得分:0)
我找到了一个非常简单的解决方案:
只需再制作一个TogglePaneButton
并将其放在原始名称上即可。然后让它成为真正的作品。在需要时将其可见性设置为Collapsed
。