WPF之模板样式
<div id="cnblogs_post_body"> 以前学WPF时弄的个自定义窗体,关于截断系统消息的一部分代码来源于网上。源文件在这里。
http://pic002.cnblogs.com/images/2012/274719/2012112621335664.jpg
说起来也容易,整个窗体就是个border,渲染下,然后在上面加层DockPanel,放那些标题和按钮。
下面是自定义窗体的样式,将XAML分开,这样方便看。
窗体部分:
<div class="cnblogs_code" >http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifView Code <div id="cnblogs_code_open_d3f78c26-4ff1-4e05-ab26-081152569672" class="cnblogs_code_hide"> <Style x:Key="WindowStyle" TargetType="Window"> <Setter Property="AllowsTransparency" Value="True"/> <Setter Property="Background" Value="Transparent"/> <Setter Property="WindowStyle" Value="None"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate x:Name="WindowTemplate" TargetType="Window"> <!--若不设置margin,阴影无法显示(被挡住了)--> <Border x:Name="FussWindowBorder" CornerRadius="5" Margin="8" Background="White" BorderBrush="#6A6A6A" BorderThickness="1" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"> <Border.Effect> <DropShadowEffect BlurRadius="8" ShadowDepth="0" Color="#00000000"/> </Border.Effect> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Border Name="TitleBar" Height="50" CornerRadius="5"> <Border.Background> <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Color="#FF2161D6" Offset="0.02"/> <GradientStop Color="#00FFFFFF" Offset="1"/> </LinearGradientBrush> </Border.Background> <DockPanel Margin="0"> <TextBlock DockPanel.Dock="Left" Name="TitleText" VerticalAlignment="Top" Margin="10 5 0 0"FontSize="16" FontWeight="Bold" Foreground="#FF101010"/> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" DockPanel.Dock="Right" Height="25" VerticalAlignment="Top"> <Rectangle Style="{DynamicResource Splitter}"/> <Button Name="MiniButton" Width="30" Template="{DynamicResource MiniButton}"/> <Rectangle Style="{DynamicResource Splitter}"/> <Button Name="MaxButton" Width="30" Style="{DynamicResource WinNormalButton}"/> <Rectangle Name="MaxSplitter"Style="{DynamicResource Splitter}"/> <Button Name="CloseButton" Width="35" Style="{DynamicResource CloseButton}"/> </StackPanel> </DockPanel> </Border> <AdornerDecorator Grid.Row="1" Height="Auto" Width="Auto"> <ContentPresenter/> </AdornerDecorator> </Grid> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style>
页:
[1]