c# wpf 实现窗口任意区域点击拖动

时间:2025-03-09 09:30:45
<Window x:Class="" xmlns="/winfx/2006/xaml/presentation" xmlns:x="/winfx/2006/xaml" xmlns:d="/expression/blend/2008" xmlns:mc="/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp3" mc:Ignorable="d" Background="Transparent" AllowsTransparency="True" WindowStyle="None" Title="MainWindow" Height="60" Width="410" PreviewMouseLeftButtonDown="Window_PreviewMouseLeftButtonDown" PreviewMouseMove="Window_PreviewMouseMove" PreviewMouseLeftButtonUp="Window_PreviewMouseLeftButtonUp"> <Border Background="White" CornerRadius="25" Margin="5"> <> <DropShadowEffect ShadowDepth="0" BlurRadius="5" Opacity="0.8" Color="#AAAAAA"/> </> <StackPanel Margin="20,0,0,0" Orientation="Horizontal"> <RadioButton Content="画笔" Width="50" Height="50" Cursor="Hand"> <> <ControlTemplate TargetType="RadioButton" > <Border Background="Transparent"> <TextBlock x:Name="txt" Background="Transparent" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#666666" FontSize="18" Text="{TemplateBinding Content}"></TextBlock> </Border> <> <Trigger Property="IsChecked" Value="true"> <Setter TargetName="txt" Property="Foreground" Value="red"></Setter> </Trigger> </> </ControlTemplate> </> </RadioButton> <RadioButton Content="矩形" Width="50" Height="50" Cursor="Hand"> <> <ControlTemplate TargetType="RadioButton" > <Border Background="Transparent"> <TextBlock x:Name="txt" Background="Transparent" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#666666" FontSize="18" Text="{TemplateBinding Content}"></TextBlock> </Border> <> <Trigger Property="IsChecked" Value="true"> <Setter TargetName="txt" Property="Foreground" Value="red"></Setter> </Trigger> </> </ControlTemplate> </> </RadioButton> <RadioButton Content="文本" Width="50" Height="50" Cursor="Hand"> <> <ControlTemplate TargetType="RadioButton" > <Border Background="Transparent"> <TextBlock x:Name="txt" Background="Transparent" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#666666" FontSize="18" Text="{TemplateBinding Content}"></TextBlock> </Border> <> <Trigger Property="IsChecked" Value="true"> <Setter TargetName="txt" Property="Foreground" Value="red"></Setter> </Trigger> </> </ControlTemplate> </> </RadioButton> <RadioButton Content="箭头" Width="50" Height="50" Cursor="Hand"> <> <ControlTemplate TargetType="RadioButton" > <Border Background="Transparent"> <TextBlock x:Name="txt" Background="Transparent" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#666666" FontSize="18" Text="{TemplateBinding Content}"></TextBlock> </Border> <> <Trigger Property="IsChecked" Value="true"> <Setter TargetName="txt" Property="Foreground" Value="red"></Setter> </Trigger> </> </ControlTemplate> </> </RadioButton> <RadioButton Content="图片" Width="50" Height="50" Cursor="Hand"> <> <ControlTemplate TargetType="RadioButton" > <Border Background="Transparent"> <TextBlock x:Name="txt" Background="Transparent" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#666666" FontSize="18" Text="{TemplateBinding Content}"></TextBlock> </Border> <> <Trigger Property="IsChecked" Value="true"> <Setter TargetName="txt" Property="Foreground" Value="red"></Setter> </Trigger> </> </ControlTemplate> </> </RadioButton> <Border Margin="10,0,0,0" BorderThickness="1,0,0,0" BorderBrush="#999999"></Border> <Button Name="btn_upload" Margin="0,0,0,0" Content="上传" Width="50" Height="50" Cursor="Hand" Click="btn_upload_Click"> <> <ControlTemplate TargetType="Button" > <Border Background="Transparent"> <TextBlock Background="Transparent" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#666666" FontSize="18" Text="{TemplateBinding Content}"></TextBlock> </Border> </ControlTemplate> </> </Button> <Button Name="btn_close" Margin="0,0,0,0" Content="关闭" Width="50" Height="50" Cursor="Hand" Click="btn_close_Click"> <> <ControlTemplate TargetType="Button" > <Border Background="Transparent"> <TextBlock Background="Transparent" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#666666" FontSize="18" Text="{TemplateBinding Content}"></TextBlock> </Border> </ControlTemplate> </> </Button> </StackPanel> </Border> </Window>