WPF按钮同时包含图像和文本

时间:2014-12-22 10:39:30

标签: wpf button styles

这是按钮样式的控件模板。

<StackPanel Orientation="Horizontal">
    <Image x:Name="EmailImage" Source="../Images/btn__icon_savedisk.png" Height="17" Width="17" Stretch="None" RenderOptions.BitmapScalingMode="NearestNeighbor" />
    <TextBlock x:Name="EmailImageTxt" Margin="20,0,20,0" Foreground="White" Text="{x:Static res:Localize.SAVE}" Background="{x:Null}" />
</StackPanel>

我的问题是当我将鼠标指针移到该区域时,图像和文本按钮(图像和文本)之间的空间没有选择。我需要将鼠标集中在所有按钮上。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

设置背景=&#34;透明&#34;到stackpanel,它按预期工作。


没有背景的控件通常在XAML术语中称为不可命中。因此必须设置背景以使对象响应命中。

  <Button VerticalAlignment="Center" HorizontalAlignment="Center">
    <Button.Template>
        <ControlTemplate>
            <StackPanel x:Name="stackpanel"  Orientation="Horizontal">
                <Image x:Name="EmailImage" Source="Black.jpg" Height="17" Width="17" Stretch="None" RenderOptions.BitmapScalingMode="NearestNeighbor" />
                <TextBlock x:Name="EmailImageTxt" Margin="20,0,20,0" Foreground="Black" Text="gdfgdg}" Background="{x:Null}" />
            </StackPanel>
            <ControlTemplate.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="Red" TargetName="stackpanel"></Setter>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Button.Template>
</Button>