2012-03-09 90 views
0

我需要删除所选状态(效果)或从我的界面中的每个控件调用的任何内容。你知道黑色的虚线...删除所有模板的状态(全局样式)

它有什么办法呢?

P.S.完全自定义的XAML页面使用30MB RAM是否正常?

在此先感谢。

+2

Your P.S.应作为单独的问题发布。 – CodeNaked 2012-03-09 14:01:18

回答

0

这是相关控制的FocusVisualStyle的控制。不幸的是,您无法使用单个Style或设置全局禁用所有控件。相反,你必须单独关闭每种控制类型。

例如,您可以在您的Application.Resources以下样式将其关闭指定的控件:

<Style TargetType="Button"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<Style TargetType="RepeatButton"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<Style TargetType="ToggleButton"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<Style TargetType="TreeViewItem"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<!-- ETC --> 

但请记住,如果你使用Style财产上的任何控件或如果您有任何其他隐式样式被定义,那么这些会阻止上面的样式被应用。

或者像瑞秋指出,你可以这样做:

<Style x:Key="FrameworkElementStyleKey" TargetType="FrameworkElement"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<Style TargetType="Button" BasedOn="{StaticResource FrameworkElementStyleKey}" /> 
<Style TargetType="RepeatButton" BasedOn="{StaticResource FrameworkElementStyleKey}" /> 
<Style TargetType="ToggleButton" BasedOn="{StaticResource FrameworkElementStyleKey}" /> 
<Style TargetType="TreeViewItem" BasedOn="{StaticResource FrameworkElementStyleKey}" /> 
<!-- ETC --> 

在功能上,这两种方法上面有同样的效果。

+1

您可以进一步简化样式,方法是为'FrameworkElement'创建一个基础样式,其中包含'FocusVisualStyle',然后使用从基础样式继承的单行控件样式。有一个很好的例子[这里](http://stackoverflow.com/a/7604656/302677) – Rachel 2012-03-09 14:27:43