我的silverlight用户控件里面有一个按钮和图像。
当我点击按钮时,会添加一个边框。
按下时可以从按钮上删除边框吗?
感谢。
答案 0 :(得分:3)
您需要调整Button模板才能执行此操作。首先获取现有模板(在Blend中,使用模板的编辑副本),如果只有Visual Studio,可以从文档中获取该模板。 Button Styles and Templates
复制整个样式并将其放在UserControl中的某个资源中,或者更好地放在它自己的ResourceDictionary文件中,并使用MergedDictionaries
包含在UserControl资源中: -
NoFocusRectangleButtonStyle.xaml: -
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="NoFocusRectangleButtonStyle" TargetType="Button">
<!-- copy of style contents from documentation -->
</Style>
</ResourceDictionary>
在您的UserControl中: -
<UserControl .... >
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="NoFocusRectangleButtonStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- other local resources -->
</ResourceDictionary>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" ...>
<Button Style="{StaticResource NoFocusRectangleButtonStyle}">
<Image Source="yourimage.png" />
</Button>
</Grid>
</UserControl>
现在您只需要在复制的样式中调整Template
即可删除焦点Rectangle
。
你会在模板的底部找到它,删除它。然后进一步查看VisualStateGroups
集的末尾,您会看到一个名为“焦点”的VisualState
,删除其中包含的Storyboard
,您就完成了。