在WPF中,设置Button如下,然后给Button添加一个透明背景图片
<Style TargetType="Button"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> </ControlTemplate> </Setter.Value> </Setter> </Style>
<Button Margin="5,0" Cursor="Hand" Click="ButtonBase_OnClick"> <Image Source="0.png"></Image> </Button>
这样按钮的显示可以透明,但是响应区域仍为矩形,在图片的透明区域还是可以点到按钮
问一下,如何让按钮不响应透明的区域,点击按钮的透明区域是,不响应按钮事件
的样式
1 <Style x:Key="ButtonStyle" TargetType="{x:Type Button}"> 2 <Setter Property="Foreground" Value="White"/> 3 <Setter Property="Template"> 4 <Setter.Value> 5 <!--设置样式 --> 6 <ControlTemplate TargetType="{x:Type Button}"> 7 <Grid> 8 <Rectangle x:Name="Rectangle" Stroke="#FFFFFFFF" StrokeMiterLimit="1.000000" StrokeThickness="0.500000" RadiusX="10" RadiusY="10" Fill="Green"> 9 </Rectangle> 10 <ContentPresenter x:Name="ContentPresenter" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 11 VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/> 12 </Grid> 13 <!-- 设置鼠标移到关闭按钮上的效果 --> 14 <ControlTemplate.Triggers> 15 <Trigger Property="IsMouseOver" Value="true"> 16 <Setter Property="Fill" TargetName="Rectangle"> 17 <Setter.Value> 18 <SolidColorBrush Color="White"></SolidColorBrush> 19 </Setter.Value> 20 </Setter> 21 <Setter Property="Foreground" Value="Black"></Setter> 22 </Trigger> 23 </ControlTemplate.Triggers> 24 </ControlTemplate> 25 </Setter.Value> 26 </Setter> 27 </Style>
最好能截个图看看,另外可以让图片填充整个区域。
比如图片是圆的,但是点击圆之外的区域按钮也会被触发,怎么让他不触发
@薄暮: 我觉得用Image就可以达到你想用的效果,实现 MouseDown 事件就可以了
你可以设置button.Visibility = Visibility.Collapsed;这样就可以了