如何从silverlight中点击按钮删除边框?

时间:2010-03-05 13:28:51

标签: silverlight silverlight-3.0

我的silverlight用户控件里面有一个按钮和图像。
当我点击按钮时,会添加一个边框。
按下时可以从按钮上删除边框吗? 感谢。

1 个答案:

答案 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,您就完成了。