我遇到了WPF选项卡视图控件的问题,我希望这里有人能够帮助我。WPF选项卡视图,自定义模板和辅助功能
我希望我的标签视图控件对标签标题使用圆角,因为我认为圆形标签看起来更好。
为此,我使用Expression Blend中的“编辑复制”命令修改了选项卡的默认控制模板。然后,我只需为标题标题的“边框”设置角落半径。
但是,这种方法的问题在于“编辑复制”命令最终会生成用于显示“活动”和“鼠标悬停”选项卡背景的渐变画笔的文字颜色值。
当“hi contrast”模式启用时,会导致问题。与其他控件一样,切换到hi对比颜色方案时,带修改模板的选项卡将使用渐变画笔中为活动和鼠标悬停选项卡选项卡指定的文字颜色值。这最终导致这些选项卡无法读取,因为当操作系统切换到高对比度模式(灰色背景上的白色文本不可读)时,选项卡标题上的文本会变为“白色”。
我想我可以在高对比度模式启用时切换回正方形标签,这将解决这个特殊问题。不过,我想象一下安装了自定义Windows主题的用户会遇到类似的问题。
所以,我想知道的是:
- 有没有什么办法可以改变梯度指向系统资源,而不是字面值,使得它的颜色会被更新正确时高对比度模式已启用
- 或者,有没有办法让我在标签页眉的边框上设置角落半径而不创建新的控件模板?
编辑:
我想我应该有一点更加明确什么我要找的。 我想要一个选项卡控件,其行为与默认选项卡控件完全相同,只是标签页眉角已舍入。默认情况下,选项卡控件将为选项卡背景使用渐变,并在用户将鼠标悬停在其上时突出显示非活动选项卡。它也会正确响应并改变它的颜色,当操作系统切换到高对比度模式时,鼠标悬停在行为上。我仍然需要这种行为。
在Blend中创建默认控件模板的副本将创建一个控件模板,该模板在高对比度模式下无法正常工作。我想知道我需要对控件模板或我的窗口中的代码执行何种操作,以使生成的控件模板在高对比度模式下正常工作。
添加对系统画笔的引用不是问题(我想了很多)。问题是我无法使用系统刷子重新创建控件的默认行为。 – 2008-11-26 01:24:49