Sha*_*baz 2 c# wpf mouse wpf-controls
我正在尝试这个代码实际上我只创建了一个正在运行的Eventhandler Click="button_Click".
XAML:
<Window x:Class="WPFAPP.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPFAPP"
mc:Ignorable="d"
Title="Window1" Height="447.625" Width="562">
<Grid>
<Button x:Name="btn1" Content="Button1" Click="button_Click" HorizontalAlignment="Left" Margin="26,22,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="btn2" Content="Button2" Click="button_Click" HorizontalAlignment="Left" Margin="26,61,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="btn3" Content="Button3" Click="button_Click" HorizontalAlignment="Left" Margin="26,100,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="btn4" Content="Button4" Click="button_Click" HorizontalAlignment="Left" Margin="26,137,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="btn5" Content="Button5" Click="button_Click" HorizontalAlignment="Left" Margin="26,174,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
C#背后的代码:
private void button_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
if(e.Equals(Mouse.RightButton))
{
button.ClearValue(Button.BackgroundProperty);
button.Background = Brushes.Green;
}
}
Run Code Online (Sandbox Code Playgroud)
Click仅针对最有限的交互而设计,如果您使用更高级的鼠标事件,则会获得MouseButtonEventArgs,它将为您提供有关该事件的所有详细信息.
这样做的原因是Click不是鼠标事件,您也可以通过触控,触控笔触发它,您甚至可以通过按下Return键来触发它,同时突出显示
所以请尝试使用MouseDown,MouseUp或DoubleClick
例如
<Button MouseDoubleClick="Button_MouseDoubleClick" >Click me</Button>
Run Code Online (Sandbox Code Playgroud)
private void Button_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if(e.ChangedButton == MouseButton.Right)
{
}
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
或者用于鼠标按下
<Button MouseDown="Button_MouseDown" >Click me</Button>
Run Code Online (Sandbox Code Playgroud)
private void Button_MouseDown(object sender, MouseButtonEventArgs e)
{
if(e.ChangedButton == MouseButton.Right)
{
}
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5822 次 |
| 最近记录: |