C# WPF按钮背景鼠标输入并保持未按预期工作
我有一个WPF按钮,如下所示:C# WPF按钮背景鼠标输入并保持未按预期工作,c#,wpf,xaml,C#,Wpf,Xaml,我有一个WPF按钮,如下所示: <Page.Resources> <ImageBrush x:Key="black_pane_normal" ImageSource="/Images/TroubleShooting/black_pane_clear.png" /> </Page.Resources> <Button x:Name="ButtonBlackPane" Background="{StaticResource black_pane
<Page.Resources>
<ImageBrush x:Key="black_pane_normal" ImageSource="/Images/TroubleShooting/black_pane_clear.png" />
</Page.Resources>
<Button x:Name="ButtonBlackPane" Background="{StaticResource black_pane_normal}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="157" Height="136" MouseEnter="ButtonBlackPane_MouseEnter" MouseLeave="ButtonBlackPane_MouseLeave" Click="ButtonBlackPane_Click" RenderTransformOrigin="0.533,0.281" Margin="189,199,0,0"/>
我的第一个问题是,我的图像没有填充整个按钮背景,我如何让它填充
我的第二个问题是,当鼠标进入按钮时,正确的背景图像会显示一会儿,然后默认的灰色按钮图像会显示,我的图像会消失,我该如何解决这个问题呢?首先,首先使用静态资源设置背景,然后每次使用代码将其设置为新的ImageBrush对象,这不是一个好的做法。查看FindResource方法()以在代码隐藏中使用您的资源 其次,您应该使用样式和触发器来修改控件的外观,这取决于例如鼠标悬停状态。有一个名为IsMouseOver的属性,您可以使用它。以下是一个例子:
<Page.Resources>
<Style TargetType="Button" x:Key="myButtonStyle">
<Setter Property="Foreground" Value="Red" />
<Setter Property="FontSize" Value="12" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Blue" />
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="FontSize" Value="16" />
</Trigger>
</Style.Triggers>
</Style>
</Page.Resources>
<Button Width="200" Height="100" Style="{StaticResource myButtonStyle}">Hello, World!</Button>
你好,世界!
第三,由于WPF按钮的默认模板,在鼠标悬停时无法直接更改其背景。这里讨论并解决了这个问题:
如果您想了解有关设置WPF控件样式以及如何使用默认模板的更多信息,请查看以下内容:
<Page.Resources>
<Style TargetType="Button" x:Key="myButtonStyle">
<Setter Property="Foreground" Value="Red" />
<Setter Property="FontSize" Value="12" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Blue" />
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="FontSize" Value="16" />
</Trigger>
</Style.Triggers>
</Style>
</Page.Resources>
<Button Width="200" Height="100" Style="{StaticResource myButtonStyle}">Hello, World!</Button>