• WPF 自定义窗口,自定义控件和样式


      首先,感谢 @/*梦里花落知多少*/  的无私分享,本文中的所有内容皆来自于 http://www.cnblogs.com/anding/p/5018363.html,加上我自己做的少许修改。

      有关控件样式,详情就看 /*梦里花落知多少*/ 的 WPF自定义控件与样式 系列文章

      我做的修改:

      1.修复WindowBase因为设置AllowsTransparency为True导致XP系统上窗体显示异常的问题;

      2.WindowBase默认样式添加自定义内容添加,添加位置为最小化按钮左边。

       

    <core:WindowBase x:Class="MainShell.ShellView"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:core="clr-namespace:WPFStyle;assembly=WPFStyle"
            xmlns:cm="clr-namespace:MainShell.Framework"
            xmlns:str="clr-namespace:Multilanguage;assembly=Multilanguage"
            xmlns:system="clr-namespace:System;assembly=mscorlib"
            Height="600" Width="900" Title="{str:StringResource ShellView_Title,DefaultValue=WPF-CM框架}">
        <core:ControlAttachProperty.AttachContent>
            <ControlTemplate >
                <core:FButton Width="Auto" Style="{DynamicResource FButton_Transparency}" Content="{str:StringResource App_CurLang,DefaultValue=中文}" 
                               cm:Message.Attach="[Event Click]= [Action ChangeLang]"></core:FButton>
            </ControlTemplate>
        </core:ControlAttachProperty.AttachContent>
    View Code

      3.样式LoopProcessBar(圆环进度条)添加了默认数值显示;

      4.自定义多选控件MultiComboBox的Text设置成只读

         新增的内容:

      1.解决datagrid退出编辑行才刷新的问题   用法:<DataGrid yy:DataGridHelper.RealTimeCommit="True">

      2.解决PasswordBox绑定问题  用法:mywpf:PasswordBoxHelper.Attach="True" mywpf:PasswordBoxHelper.Password="{Binding Path=PassWord,Mode=TwoWay}"

      3.添加了基于TextBlock实现的显示当前日期时间的控件DateTimeLabel   用法:

        <core:DateTimeLabel></core:DateTimeLabel>

               <core:DateTimeLabel Format="yyyy-MM-dd dddd">

               </core:DateTimeLabel><core:DateTimeLabel Format="HH:mm:ss"></core:DateTimeLabel>

      4.等待窗口WaitingBox的WaitShow新增完成回调函数参数

      5.MessageBoxX添加ShowSuccess和ShowFailure

      可能记得不全,实际效果看DEMO吧。为了方法使用,我将所有内容都打包到一个项目中了,要使用的话,将项目添加到解决方法,添加项目引用,在App.xaml中添加以下内容:

      

        <Application.Resources>
            <ResourceDictionary>
                    <!--Begin MyWPFStyle-->
                    <ResourceDictionary x:Name="Colors" Source="pack://application:,,,/WPFStyle;component/ControlStyle/Colors.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="Global" Source="pack://application:,,,/WPFStyle;component/ControlStyle/Global.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="Share" Source="pack://application:,,,/WPFStyle;component/ControlStyle/Share.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="FIconStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/FIconStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="FButtonStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/FButtonStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="TextBoxStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/TextBoxStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="CheckBoxStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/CheckBoxStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="RadioButonStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/RadioButonStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="CalendarStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/CalendarStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="DatePickerStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/DatePickerStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="ScrollViewerStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/ScrollViewerStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="ListBoxStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/ListBoxStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="DataGridStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/DataGridStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="ListViewStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/ListViewStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="ComboBoxStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/ComboBoxStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="MenuStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/MenuStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="ContextMenuStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/ContextMenuStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="TreeViewStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/TreeViewStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="ProcessBarStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/ProcessBarStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="BusyBoxStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/BusyBoxStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="ProgressRingStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/ProgressRingStyle.xaml"></ResourceDictionary>
                    <ResourceDictionary x:Name="WindowBaseStyle" Source="pack://application:,,,/WPFStyle;component/ControlStyle/WindowBaseStyle.xaml"></ResourceDictionary>
                    <!--End MyWPFStyle-->
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>

    DEMO下载:

    http://pan.baidu.com/s/1nuretr7

  • 相关阅读:
    Tomcat启动startup.bat闪退和JRE_HOME错误
    页面布局:一侧固定宽度,一侧自适应
    iOS-数据持久化-CoreData
    iOS-数据持久化-SQlite3
    iOS-数据持久化-偏好设置
    iOS-数据持久化-对象归档
    iOS-数据持久化-属性列表
    iOS-数据持久化基础-沙盒机制
    iOS-数据持久化详细介绍
    iOS-网络处理框架AFN
  • 原文地址:https://www.cnblogs.com/hualuo-code/p/5165628.html
Copyright © 2020-2023  润新知