需要将窗口样式添加到 App.xaml 中
- <Style x:Key="for_noresize_window" TargetType="{x:Type Window}">
- <Setter Property="AllowsTransparency" Value="true"/>
- <Setter Property="Background" Value="Transparent"/>
- <Setter Property="FontFamily" Value="Consolas, Microsoft YaHei"/>
- <Setter Property="FontSize" Value="24"/>
- <Setter Property="ResizeMode" Value="NoResize"/>
- <Setter Property="WindowStyle" Value="None"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type Window}">
- <Grid Margin="10">
- <Rectangle Fill="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
- RadiusX="5" RadiusY="5">
- <Rectangle.Effect>
- <DropShadowEffect BlurRadius="10" ShadowDepth="0"/>
- </Rectangle.Effect>
- </Rectangle>
- <Border Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- Padding="{TemplateBinding Margin}"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
- CornerRadius="5">
- <ContentPresenter />
- </Border>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Window x:Class="TestProject.Windows.NoResizeWithShadowEffect"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Background="Transparent" Height="500" Width="500"
- Title="NoResizeWithShadowEffect"
- WindowStartupLocation="CenterScreen"
- Style="{StaticResource for_noresize_window}">
- <Grid>
- <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
- <Label Content="NoResizeWithShadowEffect" Foreground="Olive"/>
- <TextBlock Text=""/>
- <Button Padding="20,5" Content="Close Window" Click="Clicked"/>
- <x:Code>
- <![CDATA[
- void Clicked(object sender, RoutedEventArgs e)
- {
- this.Close();
- }
- ]]>
- </x:Code>
- </StackPanel>
- </Grid>
- </Window>