在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → WPF自定义的MessageBox

WPF自定义的MessageBox

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:0.42M
  • 下载次数:92
  • 浏览次数:1101
  • 发布时间:2013-10-02
  • 实例类别:C#语言基础
  • 发 布 人:crazycode
  • 文件格式:.7z
  • 所需积分:2
 相关标签: wpf

实例介绍

【实例简介】

【实例截图】

【核心代码】

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Vito.Csharp.Wpf.Controls">

    <SolidColorBrush x:Key="TM_SubHeaderBackground"
                     Color="#FF2D64A0" />
    <SolidColorBrush x:Key="TM_MouseOverBorderBrush"
                     Color="#FFA4BBD4" />
    <SolidColorBrush x:Key="TM_SubTitleForeground"
                     Color="#FFFBFBFB" />
    <SolidColorBrush x:Key="TM_Textbackground"
                     Color="#FFD9DFEC" />
    <SolidColorBrush x:Key="TM_BackgroundBrush"
                     Color="#ffd1e7ff" />
    <SolidColorBrush x:Key="TM_ButtonNormalBorder"
                     Color="Transparent" />
    <LinearGradientBrush x:Key="TM_ButtonMouseOverBackground"
                         EndPoint="0.5,1"
                         StartPoint="0.5,0">
        <GradientStop Color="#FF0D66C4" />
        <GradientStop Color="#FF328FF3"
                      Offset="1" />
    </LinearGradientBrush>
    <LinearGradientBrush x:Key="TM_ButtonPressBackground"
                         EndPoint="0.5,1"
                         StartPoint="0.5,0">
        <GradientStop Color="#FF0D66C4" />
        <GradientStop Color="#FF0B498B"
                      Offset="1" />
    </LinearGradientBrush>
    <SolidColorBrush x:Key="TM_TransparentBrush"
                     Color="Transparent" />
                     
    <RadialGradientBrush  x:Key="MessageBoxBackground"
                                 GradientOrigin="0.158,0.301"
                                     Center="0.544,0.54"
                                     RadiusY="0.842"
                                     RadiusX="0.664">
                    <GradientStop Color="#FFC0D8F3"
                                  Offset="1" />
                    <GradientStop Color="#FFF0F6FD" />
                </RadialGradientBrush>        
    <Style x:Key="MessageBoxButtonStyle"
           TargetType="{x:Type Button}">
        <Setter Property="Focusable"
                Value="False" />
        <!--<Setter Property="Foreground"
                Value="{DynamicResource TM_SubTitleForeground}" />-->
        <Setter Property="Padding"
                Value="2" />
        <Setter Property="BorderThickness"
                Value="1" />
        <Setter Property="Background"
                Value="{DynamicResource TM_BackgroundBrush}" />
        <Setter Property="BorderBrush"
                Value="{DynamicResource TM_TransparentBrush}" />
        <Setter Property="Foreground"
                Value="{DynamicResource TM_SubHeaderBackground}" />
        <Setter Property="HorizontalAlignment"
                Value="Center" />
        <Setter Property="VerticalAlignment"
                Value="Center" />
        <Setter Property="HorizontalContentAlignment"
                Value="Center" />
        <Setter Property="VerticalContentAlignment"
                Value="Center" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border x:Name="Bd"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}"
                            Background="{TemplateBinding Background}"
                            Padding="{TemplateBinding Padding}"
                            SnapsToDevicePixels="True">
                        <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}"
                                          Content="{TemplateBinding Content}"
                                          ContentStringFormat="{TemplateBinding ContentStringFormat}"
                                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                          SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver"
                                 Value="True">
                            <Setter Property="BorderBrush"
                                    TargetName="Bd"
                                    Value="#FF3399FF" />
                            <Setter Property="Background"
                                    TargetName="Bd"
                                    Value="{DynamicResource TM_ButtonMouseOverBackground}" />
                            <Setter Property="Foreground"
                                    Value="{StaticResource TM_Textbackground}" />
                        </Trigger>
                        <Trigger Property="IsKeyboardFocused"
                                 Value="True">
                            <Setter Property="BorderBrush"
                                    TargetName="Bd"
                                    Value="#FF3399FF" />
                            <Setter Property="Background"
                                    TargetName="Bd"
                                    Value="{DynamicResource TM_ButtonMouseOverBackground}" />
                        </Trigger>
                        <Trigger Property="IsPressed"
                                 Value="True">
                            <Setter Property="BorderBrush"
                                    TargetName="Bd"
                                    Value="#FF3399FF" />
                            <Setter Property="Background"
                                    TargetName="Bd"
                                    Value="{DynamicResource TM_ButtonPressBackground}" />
                        </Trigger>
                        <Trigger Property="IsEnabled"
                                 Value="False">
                            <Setter Property="Foreground"
                                    Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <ControlTemplate x:Key="MessageBoxCT"
                     TargetType="{x:Type local:MessageBoxModule}">
        <Border Background="{TemplateBinding Background}"
                BorderBrush="{TemplateBinding BorderBrush}"
                BorderThickness="{TemplateBinding BorderThickness}"
                CornerRadius="3" Margin="8">
            <Border.Effect>
                <DropShadowEffect Color="#FF004289"
                                  Opacity="0.705"
                                  BlurRadius="12" ShadowDepth="1" />
            </Border.Effect>
            <Grid x:Name="grid">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="*" />
                    <RowDefinition Height="auto" />
                </Grid.RowDefinitions>
                <TextBlock x:Name="textBlock" Text="{TemplateBinding Title}"
                           Grid.Row="0"
                           Margin="10,4"
                           TextTrimming="CharacterEllipsis"
                           Foreground="{TemplateBinding TitleForeground}" />
                <Border Grid.Row="0"
                        BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0,0,0,1"/>
                <TextBlock Text="{TemplateBinding Message}"
                           Grid.Row="1"
                           Margin="10"
                           TextTrimming="None"
                           Foreground="{TemplateBinding Foreground}"
                           TextWrapping="WrapWithOverflow"
                           FontSize="{TemplateBinding FontSize}" />
                <ItemsControl Grid.Row="2"
           
                              Margin="10"
                              ItemsSource="{TemplateBinding CtrlButtonCollection}"
                              ScrollViewer.VerticalScrollBarVisibility="Disabled"
                              HorizontalContentAlignment="Center"
                              VerticalContentAlignment="Center"
                              Padding="0,0,5,0">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <UniformGrid Rows="1" />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                </ItemsControl>

            </Grid>
        </Border>
    </ControlTemplate>

    <Style TargetType="{x:Type local:MessageBoxModule}">
        <Style.Resources>
            <Storyboard x:Key="sbOpShow">

                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="{x:Null}">
                    <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="0.975"/>
                </DoubleAnimationUsingKeyFrames>

            </Storyboard>
        </Style.Resources>
        <Style.Triggers>
            <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                <BeginStoryboard Storyboard="{StaticResource sbOpShow}"/>
            </EventTrigger>
        </Style.Triggers>
        
        <Setter Property="ResizeMode"
                Value="NoResize" />
        <Setter Property="SizeToContent"
                Value="WidthAndHeight" />
        <Setter Property="MinWidth"
                Value="330" />
        <Setter Property="MinHeight"
                Value="145" />
        <Setter Property="MaxWidth"
                Value="600" />
        <Setter Property="MaxHeight"
                Value="330" />
        <Setter Property="WindowStyle"
                Value="None" />
        <Setter Property="Background"
                Value="{DynamicResource MessageBoxBackground}" />
        <Setter Property="Foreground"
                Value="{StaticResource TM_SubHeaderBackground}" />
        <Setter Property="AllowsTransparency"
                Value="True" />
        <Setter Property="BorderThickness" Value="2"/>
        <Setter Property="BorderBrush" Value="{DynamicResource TM_SubHeaderBackground}"/>
        <Setter Property="Opacity" Value="0"/>
        <Setter Property="Template"
                Value="{StaticResource MessageBoxCT}" />
    </Style>
</ResourceDictionary>

标签: wpf

实例下载地址

WPF自定义的MessageBox

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警