(精华)2020年01月26日 WPF课程管理系统项目实战(平台布局-资源字典的使用)

1.以图标为例

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:Zhaoxi.CourseManagement.Assets.Styes">

    <Style TargetType="Button" x:Key="WindowControlButtonStyle">
        <Setter Property="Width" Value="40"/>
        <Setter Property="Height" Value="30"/>
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Background="Transparent" Name="back">
                        <TextBlock Text="{Binding Content,RelativeSource={RelativeSource AncestorType=Button,Mode=FindAncestor}}"
                       VerticalAlignment="Center" HorizontalAlignment="Center"
                       FontFamily="../Fonts/#iconfont" FontSize="16"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="back" Property="Background" Value="#22FFFFFF"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter TargetName="back" Property="Background" Value="#44FFFFFF"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>

2.使用定义的图标(本地和引用资源合并)

<Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="../Assets/Styles/DefaultStyle.xaml"/>
                <ResourceDictionary>
                    <converter:GenderConverter x:Key="genderConverter"/>

                    <Style TargetType="RadioButton" x:Key="NavButtonStyle">
                        <Setter Property="Foreground" Value="White"/>
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="RadioButton">
                                    <Border Background="Transparent" CornerRadius="8" Name="back">
                                        <ContentControl Content="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="20,4" FontSize="13"/>
                                    </Border>
                                    <ControlTemplate.Triggers>
                                        <Trigger Property="IsChecked" Value="True">
                                            <Setter TargetName="back" Property="Background" Value="#44FFFFFF"/>
                                        </Trigger>
                                    </ControlTemplate.Triggers>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>

                    <SolidColorBrush x:Key="TextBox.Static.Border" Color="#FFABAdB3"/>
                    <SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/>
                    <SolidColorBrush x:Key="TextBox.Focus.Border" Color="#FF569DE5"/>
                    <ControlTemplate TargetType="{x:Type TextBox}" x:Key="SearchTextBoxTemplate">
                        <Border x:Name="border" BorderThickness="0" Background="#22000000" SnapsToDevicePixels="True"
                        CornerRadius="10">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="30"/>
                                    <ColumnDefinition/>
                                </Grid.ColumnDefinitions>
                                <TextBlock Text="&#xe600;" FontFamily="../Assets/Fonts/#iconfont" VerticalAlignment="Center"
                                   HorizontalAlignment="Center" Foreground="#44FFFFFF" FontSize="15"/>
                                <TextBlock Text="Search for what you like..." Grid.Column="1" VerticalAlignment="Center" 
                                   Foreground="#44FFFFFF" Name="mt" Visibility="Collapsed"/>
                                <ScrollViewer x:Name="PART_ContentHost" Grid.Column="1" Focusable="false" HorizontalScrollBarVisibility="Hidden"
                                  VerticalScrollBarVisibility="Hidden"
                                      VerticalAlignment="Center"
                                  Background="Transparent"/>
                            </Grid>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsEnabled" Value="false">
                                <Setter Property="Opacity" TargetName="border" Value="0.56"/>
                            </Trigger>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.MouseOver.Border}"/>
                            </Trigger>
                            <Trigger Property="IsKeyboardFocused" Value="true">
                                <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.Focus.Border}"/>
                            </Trigger>
                            <DataTrigger Binding="{Binding Text,RelativeSource={RelativeSource Mode=Self}}" Value="">
                                <Setter TargetName="mt" Property="Visibility" Value="Visible"/>
                            </DataTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>

                    <Storyboard x:Key="UserInfoStoryboard">
                        <DoubleAnimation Duration="0:0:0.2" To="0"
                                         Storyboard.TargetName="tt"
                                         Storyboard.TargetProperty="X"/>
                    </Storyboard>
                    <Storyboard x:Key="CloseUserInfoStoryboard">
                        <DoubleAnimation Duration="0:0:0.1"
                                         Storyboard.TargetName="tt"
                                         Storyboard.TargetProperty="X"/>
                    </Storyboard>

                    <ControlTemplate TargetType="RadioButton" x:Key="GenderRadioButtonTemplate">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="auto"/>
                                <ColumnDefinition/>
                            </Grid.ColumnDefinitions>
                            <Border Width="14" Height="14" CornerRadius="7" BorderThickness="1" BorderBrush="#007DFA" 
                                    Background="White" Margin="5,0" VerticalAlignment="Center">
                                <Border Width="8" Height="8" CornerRadius="4" Background="#007DFA"
                                        Name="point" Visibility="Collapsed"/>
                            </Border>
                            <ContentControl Content="{TemplateBinding Content}" VerticalAlignment="Center"
                                            Grid.Column="1"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Visibility" Value="Visible" TargetName="point"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页