C# WPF按钮模板中出现错误
我想创建一个按钮模板,该模板只对单击事件作出反应,并且不会以任何方式显示(即单击、鼠标悬停或类似操作时不会更改边框样式)。C# WPF按钮模板中出现错误,c#,wpf,styles,C#,Wpf,Styles,我想创建一个按钮模板,该模板只对单击事件作出反应,并且不会以任何方式显示(即单击、鼠标悬停或类似操作时不会更改边框样式)。这很好,但如果我将带有此模板的按钮放入网格中,则它所在的网格部分无法完全单击,仅在按钮内容所在的位置。我如何使模板像通常那样完全填充gridpart? <Style TargetType="{x:Type Button}"> <Setter Property="OverridesDefaultStyle" Value="true"/>
这很好,但如果我将带有此模板的按钮放入网格中,则它所在的网格部分无法完全单击,仅在按钮内容所在的位置。
我如何使模板像通常那样完全填充gridpart?
<Style TargetType="{x:Type Button}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Name="Border">
<ContentPresenter RecognizesAccessKey="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" />
</Trigger>
<Trigger Property="IsDefaulted" Value="true">
<Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" />
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Border" Property="Background" Value="Transparent" />
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="Border" Property="Background" Value="Transparent" />
<Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="Border" Property="Background" Value="Transparent" />
<Setter TargetName="Border" Property="BorderBrush" Value="#ffffff" />
<Setter Property="Foreground" Value="Transparent"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
请在网格中放置带有此模板的按钮的位置添加代码。我无法重现该问题,按钮是可点击的(Click
event-fires)创建一个简单的“TestButton”,并将MessageBox作为事件。您只能单击文本。但窗户的其余部分仍然无法打开。如果删除模板,则整个窗口为一个按钮。所以错误在模板中。尝试将边框的背景设置为透明。@MarcelGrüger,我使用了Content=“123”
。当我将其更改为TextBlock时,现在有一个复制。LionAM的建议很有帮助。详情如下:谢谢。。。那是。。。该死的。。。很容易?嗯,还是谢谢你;)