UWP 设置 NavigationView TogglePaneButton 颜色
UWP Set NavigationView TogglePaneButton color
从图像中可以看出,TogglePaneButton
的颜色与其余颜色不同。
那是因为我在它的VisualState
Compact源代码中处于LeftMinimal
模式时手动将它设置为WhiteSmoke
(实际上在我推送的代码中它已经是灰色的)。
我想我可以在窗格打开时通过修改其视觉状态将其改回:
<VisualState x:Name="Expanded">
<VisualState.Setters>
<Setter Target="RootSplitView.PaneBackground" Value="{ThemeResource MainNavigationViewBackground}" />
<Setter Target="TogglePaneButton.Background" Value="{ThemeResource MainNavigationViewBackground}" />
</VisualState.Setters>
</VisualState>
但它不起作用。我怎样才能做到这一点?
代码已超过 30000 个字符,所以我只能 post link:
https://github.com/SeakyLuo/SMPlayer/blob/master/SMPlayer/Dictionaries/MainNavigationView.xaml
这里的问题是 VisualStates
对不同类型的窗格模式做出反应,但不对 open/closed 事件做出反应。
我建议给按钮本身一个 Transparent
背景,并只在按钮和窗格下方显示彩色 Border
。当窗格将关闭并处于最小模式时,按钮下方的边框将使按钮看起来好像具有正确的背景颜色。当窗格打开时,它将绘制在 上方 Border
,按钮将具有与窗格相同的背景。
我找到了一个非常简单的解决方案:
只需制作另一个 TogglePaneButton
并将其放在原来的上面。然后让它像真正的一样工作。需要时将其可见性设置为 Collapsed
。
从图像中可以看出,TogglePaneButton
的颜色与其余颜色不同。
那是因为我在它的VisualState
Compact源代码中处于LeftMinimal
模式时手动将它设置为WhiteSmoke
(实际上在我推送的代码中它已经是灰色的)。
我想我可以在窗格打开时通过修改其视觉状态将其改回:
<VisualState x:Name="Expanded">
<VisualState.Setters>
<Setter Target="RootSplitView.PaneBackground" Value="{ThemeResource MainNavigationViewBackground}" />
<Setter Target="TogglePaneButton.Background" Value="{ThemeResource MainNavigationViewBackground}" />
</VisualState.Setters>
</VisualState>
但它不起作用。我怎样才能做到这一点?
代码已超过 30000 个字符,所以我只能 post link:
https://github.com/SeakyLuo/SMPlayer/blob/master/SMPlayer/Dictionaries/MainNavigationView.xaml
这里的问题是 VisualStates
对不同类型的窗格模式做出反应,但不对 open/closed 事件做出反应。
我建议给按钮本身一个 Transparent
背景,并只在按钮和窗格下方显示彩色 Border
。当窗格将关闭并处于最小模式时,按钮下方的边框将使按钮看起来好像具有正确的背景颜色。当窗格打开时,它将绘制在 上方 Border
,按钮将具有与窗格相同的背景。
我找到了一个非常简单的解决方案:
只需制作另一个 TogglePaneButton
并将其放在原来的上面。然后让它像真正的一样工作。需要时将其可见性设置为 Collapsed
。