单击时如何禁用WPF按钮的边框?
我已经创建了如下所示的按钮,除非我点击按钮,否则一切正常.
<Button Background="Transparent" BorderBrush="Transparent">
<Button.Content>
<StackPanel>
<Image Source="xxx.png" />
<TextBlock Text="Change Password" />
</StackPanel>
</Button.Content>
</Button>
Run Code Online (Sandbox Code Playgroud)
当我点击按钮时,它有如下边框.
alt text http://www.freeimagehosting.net/uploads/8ece306bd4.png
我尝试为FocusVisualStyle按钮创建样式但它不能像我期望的那样工作,当我也设置时也会出现这个问题IsDefault="True".
D'H*_*Hag 11
我知道这是一个老问题,但我觉得我可以回答.
如果我正确理解了问题,单击按钮并继续前进后,其周围会出现边框.当您单击其他项目(如TextBox或其他按钮)时,边框将消失.
这个"边界"是"焦点"指标.
要防止这种情况,请在按钮上将"Focusable"设置为"False":
<Button Background="Transparent" BorderBrush="Transparent" Focusable="False">
<Button.Content>
<StackPanel>
<Image Source="xxx.png" />
<TextBlock Text="Change Password" />
</StackPanel>
</Button.Content>
</Button>
Run Code Online (Sandbox Code Playgroud)
您可能需要更改按钮模板,这将为您提供一个没有框架的按钮,但也没有任何按下或禁用效果:
在Window.Resources元素中:
<Style TargetType="Button" x:Key="TransparentButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="Transparent">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
按钮:
<Button Style="{StaticResource TransparentButton}">
<Button.Content>
<StackPanel>
<Image Source="xxx.png" />
<TextBlock Text="Change Password" />
</StackPanel>
</Button.Content>
</Button>
Run Code Online (Sandbox Code Playgroud)
现在,如果您需要更多的视觉反馈,请从此模板开始:
http://msdn.microsoft.com/en-us/library/ms753328.aspx
并删除东西,直到你得到你想要的东西.
不要忘记为元素添加透明背景,如果没有,或者背景为空,则按钮内的透明区域将无法点击.
| 归档时间: |
|
| 查看次数: |
13610 次 |
| 最近记录: |