zoukankan      html  css  js  c++  java
  • WPF qq界面(转)

    原文:http://blog.csdn.net/u013981858/article/details/49130885

    刚开始学WPF,自己写了个小东西,说实话写的并不好,好多东西不懂只是用现在懂的东西来写的,效果如图

    下面是源码,理论上很简单,我直接放代码了。

    自定义用户控件RightButton.xaml

      1 <UserControl x:Class="WpfApplication8.RigthButton"
      2              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      3              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      4              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      5              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      6              mc:Ignorable="d" 
      7              d:DesignHeight="300" d:DesignWidth="300">
      8     <UserControl.Resources>
      9         <Style x:Key="CloseButton" TargetType="{x:Type Button}">
     10             <Setter Property="Template">
     11                 <Setter.Value>
     12                     <ControlTemplate TargetType="{x:Type Button}">
     13                         <Grid>
     14                             <Rectangle x:Name="rectangle">
     15                                 <Rectangle.Fill>
     16                                     <ImageBrush ImageSource="skin/close_normal.png"/>
     17                                 </Rectangle.Fill>
     18                             </Rectangle>
     19                         </Grid>
     20                         <ControlTemplate.Triggers>
     21                             <Trigger Property="IsFocused" Value="True"/>
     22                             <Trigger Property="IsDefaulted" Value="True"/>
     23                             <Trigger Property="IsMouseOver" Value="True">
     24                                 <Setter Property="Fill" TargetName="rectangle">
     25                                     <Setter.Value>
     26                                         <ImageBrush ImageSource="skin/close_hot.png"/>
     27                                     </Setter.Value>
     28                                 </Setter>
     29                             </Trigger>
     30                             <Trigger Property="IsPressed" Value="True">
     31                                 <Setter Property="Fill" TargetName="rectangle">
     32                                     <Setter.Value>
     33                                         <ImageBrush ImageSource="skin/close_down.png"></ImageBrush>
     34                                     </Setter.Value>
     35                                 </Setter>
     36                             </Trigger>
     37                             <Trigger Property="IsEnabled" Value="False"/>
     38                         </ControlTemplate.Triggers>
     39                     </ControlTemplate>
     40                 </Setter.Value>
     41             </Setter>
     42         </Style>
     43 
     44         <Style x:Key="SmallButton" TargetType="{x:Type Button}">
     45             <Setter Property="Template">
     46                 <Setter.Value>
     47                     <ControlTemplate TargetType="{x:Type Button}">
     48                         <Grid>
     49                             <Rectangle x:Name="rectangle">
     50                                 <Rectangle.Fill>
     51                                     <ImageBrush ImageSource="skin/small_normal.png"/>
     52                                 </Rectangle.Fill>
     53                             </Rectangle>
     54                         </Grid>
     55                         <ControlTemplate.Triggers>
     56                             <Trigger Property="IsFocused" Value="True"/>
     57                             <Trigger Property="IsDefaulted" Value="True"/>
     58                             <Trigger Property="IsMouseOver" Value="True">
     59                                 <Setter Property="Fill" TargetName="rectangle">
     60                                     <Setter.Value>
     61                                         <ImageBrush ImageSource="skin/small_hot.png"/>
     62                                     </Setter.Value>
     63                                 </Setter>
     64                             </Trigger>
     65                             <Trigger Property="IsPressed" Value="True">
     66                                 <Setter Property="Fill" TargetName="rectangle">
     67                                     <Setter.Value>
     68                                         <ImageBrush ImageSource="skin/small_down.png"></ImageBrush>
     69                                     </Setter.Value>
     70                                 </Setter>
     71                             </Trigger>
     72                             <Trigger Property="IsEnabled" Value="False"/>
     73                         </ControlTemplate.Triggers>
     74                     </ControlTemplate>
     75                 </Setter.Value>
     76             </Setter>
     77         </Style>
     78 
     79         <Style x:Key="DownButton" TargetType="{x:Type Button}">
     80             <Setter Property="Template">
     81                 <Setter.Value>
     82                     <ControlTemplate TargetType="{x:Type Button}">
     83                         <Grid>
     84                             <Rectangle x:Name="rectangle">
     85                                 <Rectangle.Fill>
     86                                     <ImageBrush ImageSource="skin/down_normal.png"/>
     87                                 </Rectangle.Fill>
     88                             </Rectangle>
     89                         </Grid>
     90                         <ControlTemplate.Triggers>
     91                             <Trigger Property="IsFocused" Value="True"/>
     92                             <Trigger Property="IsDefaulted" Value="True"/>
     93                             <Trigger Property="IsMouseOver" Value="True">
     94                                 <Setter Property="Fill" TargetName="rectangle">
     95                                     <Setter.Value>
     96                                         <ImageBrush ImageSource="skin/down_hot.png"/>
     97                                     </Setter.Value>
     98                                 </Setter>
     99                             </Trigger>
    100                             <Trigger Property="IsPressed" Value="True">
    101                                 <Setter Property="Fill" TargetName="rectangle">
    102                                     <Setter.Value>
    103                                         <ImageBrush ImageSource="skin/down_down.png"></ImageBrush>
    104                                     </Setter.Value>
    105                                 </Setter>
    106                             </Trigger>
    107                             <Trigger Property="IsEnabled" Value="False"/>
    108                         </ControlTemplate.Triggers>
    109                     </ControlTemplate>
    110                 </Setter.Value>
    111             </Setter>
    112         </Style>
    113     </UserControl.Resources>
    114     <StackPanel Orientation="Horizontal">
    115         <Button Click="Button_Click" Width="30" Height="30" Style="{StaticResource DownButton}"></Button>
    116         <Button Click="Button_Click_1" Width="30" Height="30" Style="{StaticResource SmallButton}"></Button>
    117         <Button Click="Button_Click_2" Width="30" Height="30" Style="{StaticResource CloseButton}"></Button>
    118     </StackPanel>
    119 </UserControl>

    RightButton.xmal.cs

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 using System.Windows;
     7 using System.Windows.Controls;
     8 using System.Windows.Data;
     9 using System.Windows.Documents;
    10 using System.Windows.Input;
    11 using System.Windows.Media;
    12 using System.Windows.Media.Imaging;
    13 using System.Windows.Navigation;
    14 using System.Windows.Shapes;
    15 
    16 namespace WpfApplication8
    17 {
    18     /// <summary>
    19     /// RigthButton.xaml 的交互逻辑
    20     /// </summary>
    21     public partial class RigthButton : UserControl
    22     {
    23         public RigthButton()
    24         {
    25             InitializeComponent();
    26         }
    27 
    28         private void Button_Click(object sender, RoutedEventArgs e)
    29         {
    30 
    31         }
    32 
    33         private void Button_Click_1(object sender, RoutedEventArgs e)
    34         {
    35             
    36         }
    37 
    38         private void Button_Click_2(object sender, RoutedEventArgs e)
    39         {
    40             Application.Current.Shutdown();
    41         }
    42     }
    43 }

    MainWindow.xaml

      1 <Window x:Class="WpfApplication8.MainWindow"
      2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      4         xmlns:loc="clr-namespace:WpfApplication8"
      5         Title="企鹅球球" Height="330" Width="430" AllowsTransparency="True" WindowStyle="None" MouseDown="Window_MouseDown">
      6     <Window.Resources>
      7         <Style x:Key="FocusVisual">
      8             <Setter Property="Control.Template">
      9                 <Setter.Value>
     10                     <ControlTemplate>
     11                         <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
     12                     </ControlTemplate>
     13                 </Setter.Value>
     14             </Setter>
     15         </Style>
     16         <SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>
     17         <SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
     18         <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
     19         <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
     20         <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
     21         <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
     22         <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
     23         <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
     24         <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>
     25         <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
     26             <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
     27             <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
     28             <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
     29             <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
     30             <Setter Property="BorderThickness" Value="1"/>
     31             <Setter Property="HorizontalContentAlignment" Value="Center"/>
     32             <Setter Property="VerticalContentAlignment" Value="Center"/>
     33             <Setter Property="Padding" Value="1"/>
     34             <Setter Property="Template">
     35                 <Setter.Value>
     36                     <ControlTemplate TargetType="{x:Type Button}">
     37                         <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
     38                             <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
     39                         </Border>
     40                         <ControlTemplate.Triggers>
     41                             <Trigger Property="IsDefaulted" Value="true">
     42                                 <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
     43                             </Trigger>
     44                             <Trigger Property="IsMouseOver" Value="true">
     45                                 <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
     46                                 <Setter Property="Background" TargetName="border" Value="#FF51B3EC"/>
     47                             </Trigger>
     48                             <Trigger Property="IsPressed" Value="true">
     49                                 <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
     50                                 <Setter Property="Background" Value="#FF3FA4E8"/>
     51                                 <Setter Property="Background" TargetName="border" Value="#FF42B5F0"/>
     52                             </Trigger>
     53                             <Trigger Property="IsEnabled" Value="false">
     54                                 <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
     55                                 <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
     56                                 <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
     57                             </Trigger>
     58                         </ControlTemplate.Triggers>
     59                     </ControlTemplate>
     60                 </Setter.Value>
     61             </Setter>
     62         </Style>
     63         <SolidColorBrush x:Key="OptionMark.Static.Background" Color="#FFFFFFFF"/>
     64         <SolidColorBrush x:Key="OptionMark.Static.Border" Color="#FF707070"/>
     65         <Style x:Key="OptionMarkFocusVisual">
     66             <Setter Property="Control.Template">
     67                 <Setter.Value>
     68                     <ControlTemplate>
     69                         <Rectangle Margin="14,0,0,0" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
     70                     </ControlTemplate>
     71                 </Setter.Value>
     72             </Setter>
     73         </Style>
     74         <SolidColorBrush x:Key="OptionMark.MouseOver.Background" Color="#FFF3F9FF"/>
     75         <SolidColorBrush x:Key="OptionMark.MouseOver.Border" Color="#FF5593FF"/>
     76         <SolidColorBrush x:Key="OptionMark.MouseOver.Glyph" Color="#FF212121"/>
     77         <SolidColorBrush x:Key="OptionMark.Disabled.Background" Color="#FFE6E6E6"/>
     78         <SolidColorBrush x:Key="OptionMark.Disabled.Border" Color="#FFBCBCBC"/>
     79         <SolidColorBrush x:Key="OptionMark.Disabled.Glyph" Color="#FF707070"/>
     80         <SolidColorBrush x:Key="OptionMark.Pressed.Background" Color="#FFD9ECFF"/>
     81         <SolidColorBrush x:Key="OptionMark.Pressed.Border" Color="#FF3C77DD"/>
     82         <SolidColorBrush x:Key="OptionMark.Pressed.Glyph" Color="#FF212121"/>
     83         <SolidColorBrush x:Key="OptionMark.Static.Glyph" Color="#FF212121"/>
     84         <Style x:Key="CheckBoxStyle1" TargetType="{x:Type CheckBox}">
     85             <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
     86             <Setter Property="Background" Value="{StaticResource OptionMark.Static.Background}"/>
     87             <Setter Property="BorderBrush" Value="{StaticResource OptionMark.Static.Border}"/>
     88             <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
     89             <Setter Property="BorderThickness" Value="1"/>
     90             <Setter Property="Template">
     91                 <Setter.Value>
     92                     <ControlTemplate TargetType="{x:Type CheckBox}">
     93                         <Grid x:Name="templateRoot" Background="Transparent" SnapsToDevicePixels="True">
     94                             <Grid.ColumnDefinitions>
     95                                 <ColumnDefinition Width="Auto"/>
     96                                 <ColumnDefinition Width="*"/>
     97                             </Grid.ColumnDefinitions>
     98                             <Border x:Name="checkBoxBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
     99                                 <Grid x:Name="markGrid">
    100                                     <Path x:Name="optionMark" Data="F1 M 9.97498,1.22334L 4.6983,9.09834L 4.52164,9.09834L 0,5.19331L 1.27664,3.52165L 4.255,6.08833L 8.33331,1.52588e-005L 9.97498,1.22334 Z " Fill="{StaticResource OptionMark.Static.Glyph}" Margin="1" Opacity="0" Stretch="None"/>
    101                                     <Rectangle x:Name="indeterminateMark" Fill="{StaticResource OptionMark.Static.Glyph}" Margin="2" Opacity="0"/>
    102                                 </Grid>
    103                             </Border>
    104                             <ContentPresenter x:Name="contentPresenter" Grid.Column="1" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
    105                         </Grid>
    106                         <ControlTemplate.Triggers>
    107                             <Trigger Property="HasContent" Value="true">
    108                                 <Setter Property="FocusVisualStyle" Value="{StaticResource OptionMarkFocusVisual}"/>
    109                                 <Setter Property="Padding" Value="4,-1,0,0"/>
    110                             </Trigger>
    111                             <Trigger Property="IsMouseOver" Value="true">
    112                                 <Setter Property="Background" TargetName="checkBoxBorder" Value="{StaticResource OptionMark.MouseOver.Background}"/>
    113                                 <Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="{StaticResource OptionMark.MouseOver.Border}"/>
    114                                 <Setter Property="Fill" TargetName="optionMark" Value="{StaticResource OptionMark.MouseOver.Glyph}"/>
    115                                 <Setter Property="Fill" TargetName="indeterminateMark" Value="{StaticResource OptionMark.MouseOver.Glyph}"/>
    116                             </Trigger>
    117                             <Trigger Property="IsEnabled" Value="false">
    118                                 <Setter Property="Background" TargetName="checkBoxBorder" Value="{StaticResource OptionMark.Disabled.Background}"/>
    119                                 <Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="{StaticResource OptionMark.Disabled.Border}"/>
    120                                 <Setter Property="Fill" TargetName="optionMark" Value="{StaticResource OptionMark.Disabled.Glyph}"/>
    121                                 <Setter Property="Fill" TargetName="indeterminateMark" Value="{StaticResource OptionMark.Disabled.Glyph}"/>
    122                             </Trigger>
    123                             <Trigger Property="IsPressed" Value="true">
    124                                 <Setter Property="Background" TargetName="checkBoxBorder" Value="{StaticResource OptionMark.Pressed.Background}"/>
    125                                 <Setter Property="BorderBrush" TargetName="checkBoxBorder" Value="{StaticResource OptionMark.Pressed.Border}"/>
    126                                 <Setter Property="Fill" TargetName="optionMark" Value="{StaticResource OptionMark.Pressed.Glyph}"/>
    127                                 <Setter Property="Fill" TargetName="indeterminateMark" Value="{StaticResource OptionMark.Pressed.Glyph}"/>
    128                             </Trigger>
    129                             <Trigger Property="IsChecked" Value="true">
    130                                 <Setter Property="Opacity" TargetName="optionMark" Value="1"/>
    131                                 <Setter Property="Opacity" TargetName="indeterminateMark" Value="0"/>
    132                                 <Setter Property="Background" TargetName="markGrid" Value="blue"/>
    133                                 <Setter Property="Fill" TargetName="optionMark" Value="white"/>
    134                             </Trigger>
    135                             <Trigger Property="IsChecked" Value="{x:Null}">
    136                                 <Setter Property="Opacity" TargetName="optionMark" Value="0"/>
    137                                 <Setter Property="Opacity" TargetName="indeterminateMark" Value="1"/>
    138                             </Trigger>
    139                         </ControlTemplate.Triggers>
    140                     </ControlTemplate>
    141                 </Setter.Value>
    142             </Setter>
    143         </Style>
    144     </Window.Resources>
    145     <StackPanel>
    146         <Grid Height="180">
    147             <Grid.Background>
    148                 <ImageBrush ImageSource="bckpic.jpg"/>
    149             </Grid.Background>
    150             <StackPanel Width="150" Height="30" HorizontalAlignment="Right" VerticalAlignment="Top">
    151                 <loc:RigthButton HorizontalAlignment="Right"></loc:RigthButton>
    152             </StackPanel>
    153         </Grid>
    154         <StackPanel Height="150">
    155             <StackPanel Orientation="Horizontal" >
    156                 <Border Height="80" Width="80" Margin="35,10,10,10" CornerRadius="5" BorderBrush="Gray" BorderThickness="1">
    157                     <Border.Background>
    158                         <ImageBrush ImageSource="touxiang1.jpg"/>
    159                     </Border.Background>
    160                 </Border>
    161                 <StackPanel Width="180" Height="89" Margin="10,10,0,0">
    162                     <Border BorderBrush="Gray" CornerRadius="5" BorderThickness="1">
    163                         <StackPanel Width="180" Height="60">
    164                             <TextBox Height="25" Width="180" Background="{x:Null}" BorderThickness="0,0,0,1" Margin="0,5,0,0" FontSize="14" Foreground="Gray">用户名</TextBox>
    165                             <TextBox Height="25" Width="180" Background="{x:Null}" BorderThickness="0" Margin="0,2,0,0" FontSize="14" Foreground="Gray">密码</TextBox>
    166                         </StackPanel>
    167                     </Border>
    168                    
    169                     <StackPanel Orientation="Horizontal" Height="15" Width="180" Margin="0,10,0,0">
    170                         <CheckBox Style="{DynamicResource CheckBoxStyle1}">记住密码</CheckBox>
    171                         <CheckBox Style="{DynamicResource CheckBoxStyle1}" Margin="42,0,0,0">自动登陆</CheckBox>
    172                     </StackPanel>
    173 
    174                 </StackPanel>
    175 
    176                 <StackPanel Height="60" Margin="15">
    177                     <TextBlock Height="30">
    178                         <Hyperlink NavigateUri="http://zc.qq.com">注册账号</Hyperlink>
    179                     </TextBlock>
    180                     <TextBlock Height="30">
    181                         <Hyperlink NavigateUri="http://aq.qq.com/">找回密码</Hyperlink>
    182                     </TextBlock>
    183                 </StackPanel>
    184 
    185             </StackPanel>
    186 
    187             <Border Height="30" Width="180" Margin="20,5,0,0" CornerRadius="5" BorderBrush="#FF0E95F1" BorderThickness="1">
    188                 <Button Height="30" FontWeight="Bold" Width="180" Content="登  陆" FontFamily="宋体" Foreground="White" Background="#FF0E95F1" BorderThickness="0" Style="{DynamicResource ButtonStyle1}"></Button>
    189             </Border>    
    190         </StackPanel>
    191     </StackPanel>
    192 </Window>
  • 相关阅读:
    SDUT OJ 河床
    BZOJ 1500: [NOI2005]维修数列( splay )
    BZOJ 2049: [Sdoi2008]Cave 洞穴勘测( LCT )
    BZOJ 3401: [Usaco2009 Mar]Look Up 仰望( 单调栈 )
    BZOJ 1552: [Cerc2007]robotic sort( splay )
    BZOJ 1251: 序列终结者( splay )
    BZOJ 1576: [Usaco2009 Jan]安全路经Travel( 树链剖分 )
    BZOJ 3408: [Usaco2009 Oct]Heat Wave 热浪( 最短路 )
    BZOJ 3403: [Usaco2009 Open]Cow Line 直线上的牛( deque )
    BZOJ 3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题( dp )
  • 原文地址:https://www.cnblogs.com/start-from-scratch/p/5648605.html
Copyright © 2011-2022 走看看