鼠标事件按钮不起作用

时间:2017-12-15 07:31:16

标签: c# wpf visual-studio

我在WPF中有一个按钮,我正在为它创建一个事件处理程序。 我的目标是在单击按钮时生成凹陷效果。 问题是我尝试了不同的事件处理程序,它似乎没有工作。 我看不到任何影响。有关如何修复的想法吗?

XAML:

<Button x:Name="btnMyAccount">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="165"/>
            <RowDefinition Height="70"/>
        </Grid.RowDefinitions>
        <Image Grid.Row="0" Source="{StaticResource Home-MyProfile}" />
        <TextBlock x:Name="txtMyAccount" Grid.Row="1" FontWeight="Bold">
            MY ACCOUNT
        </TextBlock>
    </Grid>
</Button>

C#代码:

private void btnMyAccount_MouseDown(object sender, MouseButtonEventArgs e)
{
    btnMyAccount.BorderThickness = new Thickness(5, 5, 0, 0);
}

1 个答案:

答案 0 :(得分:2)

我认为在<Button></Button>代码中包含某些内容意味着您现在拥有了按钮的自定义模板。您应该使用<Border x:Name="yourBorder"></Border>围绕网格,然后增加边框thinknes

您必须将按钮模板更改为如下所示:

<Button x:Name="btnMyAccount">
    <Border x:Name="yourBorder" BorderBrush="Black" BorderThickness="1">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="165"/>
                <RowDefinition Height="70"/>
            </Grid.RowDefinitions>
            <Image Grid.Row="0" Source="{StaticResource Home-MyProfile}" />
            <TextBlock x:Name="txtMyAccount" Grid.Row="1" FontWeight="Bold">
                MY ACCOUNT
            </TextBlock>
        </Grid>
    </Border>
</Button>

然后在您的事件处理程序中,您将更改yourBorder厚度:

private void btnMyAccount_MouseDown(object sender, MouseButtonEventArgs e)
{
    yourBorder.BorderThickness = new Thickness(5, 5, 0, 0);
}