WPF学习笔记(1)
03 Apr 2012即日开始,启动WPF笔记。
今日带来一个CPU,Memroy统计工具。
给CS写XAML有点类似于给HTML写CSS的感觉,不过XAML更强大。
开发工具:Microsoft Expression Blend4/Visual Studio 2010
主窗体XAML:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="WPF.MainWindow" x:Name="Window" Title="LAZY-CPU" Width="300" Height="450" Loaded="Window_Loaded" Closed="Window_Closed"> <Grid Background="Black" OpacityMask="Black"> <Grid.ColumnDefinitions > <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition Height="*"/> <RowDefinition Height="30"/> </Grid.RowDefinitions> <ProgressBar Name="cput" Width="50" Height="320" Grid.Column="0" Grid.Row="1" Orientation="Vertical" Foreground="#FF4040" Background="White" BorderBrush="Gray" BorderThickness="3" /> <ProgressBar Name="memt" Width="50" Height="320" Grid.Column="1" Grid.Row="1" Orientation="Vertical" Foreground="#FF4040" Background="White" BorderBrush="Gray" BorderThickness="3"/> <TextBlock Grid.Column="0" Grid.Row="0" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center">CPU</TextBlock> <TextBlock Grid.Column="1" Grid.Row="0" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center">Memory</TextBlock> <TextBlock Name="ucpu" Grid.Column="0" Grid.Row="2" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/> <TextBlock Name="umem" Grid.Column="1" Grid.Row="2" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Grid> </Window>
模板XAML:
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="WPF.App" StartupUri="MainWindow.xaml"> <Application.Resources> <Style TargetType="ProgressBar"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ProgressBar"> <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="5" Name="border"> <Grid> <Rectangle Fill="{TemplateBinding Background}" Name="PART_Track" /> <Rectangle Fill="{TemplateBinding Foreground}" Name="PART_Indicator" HorizontalAlignment="Left"/> </Grid> </Border> <ControlTemplate.Triggers> <Trigger Property="Orientation" Value="Vertical"> <Setter TargetName="border" Property="LayoutTransform"> <Setter.Value> <RotateTransform Angle="270" /> </Setter.Value> </Setter> </Trigger> <Trigger Property="IsIndeterminate" Value="True"> <Setter TargetName="PART_Indicator" Property="Style"> <Setter.Value> <Style TargetType="FrameworkElement"> <Setter Property="HorizontalAlignment" Value="Stretch"/> <Style.Triggers> <EventTrigger RoutedEvent="Loaded"> <BeginStoryboard> <Storyboard> <ColorAnimation Storyboard.TargetProperty="Fill.Color" To="Transparent" Duration="0:0:0.5" AutoReverse="True" RepeatBehavior="Forever"/> </Storyboard> </BeginStoryboard> </EventTrigger> </Style.Triggers> </Style> </Setter.Value> </Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Application.Resources> </Application>
关于ProgressBar的纵向显示:
自.NET4.0开始,如果修改进度条为竖向,其中的进度方向仍为横向,具体是因为考虑到性能问题,微软做的改动。
解决方法:http://connect.microsoft.com/VisualStudio/feedback/details/571674/issue-with-vertical-progress-bar-on-4-0-framework
PS:往后写文章可能用英语,一是借此复习英语迎接六级,二是培养读英文资料的能力,此文为记。
下载源码
转载请注明:于哲的博客 » WPF学习笔记(1)