由两个TextBlock组成的WPF按钮不可点击区域

时间:2018-01-16 22:33:46

标签: wpf xaml

我创建了一个由两个WPF TextBlocks组成的按钮。我在第二个TextBlock中添加了一个边距,以便从第一个TextBlock中添加空格,并且两个TextBlock都包含在StackPanel中。

问题是空格(第二个TextBlock的左边距)没有响应点击。我不仅希望TextBlocks可以点击,而且还希望它们之间的空白区域。

这是代码

<Button HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 20 20 0" Command="{Binding OpenSideMenuCommand}">
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <ContentPresenter />
        </ControlTemplate>
    </Button.Template>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
        <TextBlock Text="&#xf0c9;" FontFamily="{StaticResource FontAwesome}" 
                                    FontSize="{StaticResource FontSizeXXLarge}" VerticalAlignment="Center" />
        <TextBlock Text="Menu" Margin="30 0 0 0" FontSize="{StaticResource FontSizeXXLarge}" />
    </StackPanel>
</Button>

这是结果

Non-clickable area

1 个答案:

答案 0 :(得分:4)

出于某种原因,如果面板上没有&#34;空&#34;

,则无法点击该面板。

解决此问题的一种方法是设置其Background属性,例如:

<Button HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 20 20 0" Command="{Binding OpenSideMenuCommand}">
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <ContentPresenter />
        </ControlTemplate>
    </Button.Template>
    <StackPanel Background="Transparent" Orientation="Horizontal" HorizontalAlignment="Stretch">
        <TextBlock Text="&#xf0c9;" FontFamily="{StaticResource FontAwesome}" 
                                    FontSize="{StaticResource FontSizeXXLarge}" VerticalAlignment="Center" />
        <TextBlock Text="Menu" Margin="30 0 0 0" FontSize="{StaticResource FontSizeXXLarge}" />
    </StackPanel>
</Button>