精华内容
下载资源
问答
  • WPF XAML

    2014-09-11 20:37:00
    WPF XAML xmlns 在xml中专门用于声明名字控件, xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 是WPF的核心名字空间,它包含所有WPF类,包括用于构建用户界面的控件 ...
    1. xmlns 在xml中专门用于声明名字控件,
    • xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 是WPF的核心名字空间,它包含所有WPF类,包括用于构建用户界面的控件
    • xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 是XAML名字空间,包含各种XAML实用特性,之后会有x:Class ,x:Name等 ,x就表示这个命名空
    XAML名字空间中的Class 告诉XAML编译器生成一个新Applicaion类(Partial类)用于事件处理,我们可以提供Class的Partial类的其他实现,x名字空间的主要内容如下:
    • attribute类:
      x:Class:告诉窗口编译成类,如上
      x:ClassModifier:编译成的类的访问权限,public,internal,private等
      x:Name:编译成类的属性
      x:FieldModifier:修饰属性的访问权限
      x:key:用于检索资源的key
      x:Shared:声明资源是否共享,与x:key配合使用
    • 标记扩展类:
      x:Array :数组标签类型
      x:Static:表示静态成员
      x:Type:表示类型
      x:nul:
    WPF Xaml的标记扩展常用的包括:StaticResource,DynamicResource,TemplateBinding等,完整的参考:http://msdn.microsoft.com/zh-cn/library/ms747180(v=vs.110).aspx.要注意WPF xaml的标记扩展与上面xaml本身自带的标记扩展X:Static等的区别 InitializeComponent():由编译器自动生成,功能是调用System.Windows.Application类的LoadComponent()方法从程序集中提取BAML(编译过的XAML),并使用它构建用户界面 在代码中要操作控件,则控件必须包含XAML Name属性,这样XAML编译器会自动生成以Name命名的对象,前提是使用RuntimeNameProperty标签修饰了类,由于FramworkElement类使用了RuntimeNameProperty修饰了所以继承自它的控件都可以这样使用

    复杂属性的设置,以设置Grid的Background为例,如果想使用其他画刷设置Background,可以通过如下方式添加其他标签来实例化特定的类
         
      <Grid Name="grid1"> 
            <Grid.Background>
            <LinearGradientBrush>    
            </LinearGradienBrush>
            </Grid.Background>
            </Grid>
    标记扩展:可以使属性值绑定到一个动态变化的量,所有标记扩展类都继承自System.Windows.Markup.MarkupExtension基类,例如:
          
    <Button ... Foreground>="{x:Static SystemColors.ActiveCaptionBrush}">,
    与button.Foreground=SysemColors.ActiveCaptionBrush 作用相同,其中Static是StaticExtension类的缩写,在引用扩展类时可以省略Extension
    • x:Type 为变量提供Type对象, 即等号左边是Type类型
    • x:Static 生成静态值
    • x:Null 将null指定为属性的值
    附加属性,通常用于控件布局 Xaml让父元素决定如何处理嵌套的子元素,算法如下:
    • 父元素继承自IList,则解析器调用IList.Add 添加子元素
    • 父元素继承自IDictionary,则解析器调用IDictionary.Add方法添加子元素,当使用字典集合时,还必须设置x:Key特性为每个item指定一个键名
    • 父元素使用了ContentProperty特性进行修饰,则解析器使用Children.Add 添加子元素

    Xaml中引用其他名字空间:
    xmlns:prefix="clr-namespace:Namespace;assembly=AssemblyName"
    prefix是名字空间的简称,例如x是xmla名字空间的简称,可以在xmla中使用
    Xaml可以不随项目一起编译,项目中可以XamlReader读取xaml, 并用LogicalTreeHelper.FindLogicalNode或者FrameWorkElement.FindName方法获取对象
    posted on 2014-09-11 20:37 哨兵 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/phenixyu/p/3967203.html

    展开全文
  • wpf xaml 简单例子

    2012-09-08 18:22:24
    wpf xaml 数据binding 简单例子
  • WPF Xaml中创建集合

    2019-09-27 09:05:26
    WPF Xaml中创建集合 原文:WPF Xaml中创建集合 首先在xaml中创建集合是一个不可取的方法。 本方法仅作为xaml的学习。 本文略微无聊,主要是编写的东西都是老玩意。 首先是定义一个类,作为你要加载...
    原文:WPF Xaml中创建集合

    首先在xaml中创建集合是一个不可取的方法。

    本方法仅作为xaml的学习。

    本文略微无聊,主要是编写的东西都是老玩意。

    首先是定义一个类,作为你要加载集合的模型。

    结构如下

     internal class Student
        {
            public string Name { get; set; }
            public int Age { get; set; }
        }
        internal class StudentList:List<Student>
        {
    
        }
      class StringCollect
        {
            public StudentList Students { get; set; }
        }

     

     

    XAML中

      <Window.DataContext>
            <local:StringCollect  x:Name="c2"  >
                <local:StringCollect.Students>
                    <local:StudentList>
                        <local:Student Age="18" Name="A1"/>
                        <local:Student Age="18" Name="A2"/>
                        <local:Student Age="18" Name="A3"/>
                    </local:StudentList>
                </local:StringCollect.Students>
            </local:StringCollect>
        </Window.DataContext>
        <Grid>
            <ListBox ItemsSource="{Binding ElementName=c2,Path=Students}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <TextBlock>
                                <Run Text="Name:"/>
                                <Run Text="{Binding Name}"/>
                            </TextBlock>
                            <TextBlock Grid.Column="1">
                                <Run Text="Age:"/>
                                <Run Text="{Binding Age}"/>
                            </TextBlock>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </Grid>

     

    截图如下

     

    那么还有别的方法吗?

    当然了,比如XAML中的X:Array关键字

    比如

            <ListBox  >
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <TextBlock>
                                <Run Text="Name:"/>
                                <Run Text="{Binding Name}"/>
                            </TextBlock>
                            <TextBlock Grid.Column="1">
                                <Run Text="Age:"/>
                                <Run Text="{Binding Age}"/>
                            </TextBlock>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
                <ListBox.ItemsSource>
                    <x:Array Type="{x:Type local:Student}">
                        <local:Student Age="18" Name="b1"/>
                        <local:Student Age="18" Name="b2"/>
                        <local:Student Age="18" Name="b3"/>
                    </x:Array>
                </ListBox.ItemsSource>
            </ListBox>

    我觉得在xaml创建集合是一个比较无聊的事情。

    posted on 2019-09-08 07:27 NET未来之路 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/11484233.html

    展开全文
  • WPF xaml数据绑定

    2020-09-09 22:08:09
    xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定
  • #c wpf xaml使用NOTE: If you haven't read the first post in this series, I would encourage you do to that first, or check out the BabySmash category. Also check out ...
    #c wpf xaml使用

    #c wpf xaml使用

     NOTE: If you haven't read the first post in this series, I would encourage you do to that first, or check out the BabySmash category. Also check out http://windowsclient.net/ for more developer info on WPF.

    注意:如果您还没有阅读本系列第一篇文章,我建议您先阅读该文章,或者查看BabySmash类别 另请访问http://windowsclient.net/以获取有关WPF的更多开发人员信息。

    BACKGROUND: This is one of a series of posts on learning WPF. I wrote an application for my 2 year old using WPF, but as I'm a Win32-minded programmer, my working app is full of Win32-isms. It's not a good example of a WPF application even though it uses the technology. I'm calling on community (that's you, Dear Reader) to blog about your solutions to different (horrible) selections of my code. You can get the code http://www.codeplex.com/babysmash. Post your solutions on your blog, in the comments, or in the Issue Tracker and we'll all learn WPF together. Pick a single line, a section, or subsystem or the whole app!

    背景:这是有关学习WPF的一系列文章之一。 我使用WPF为2岁的孩子编写了一个应用程序,但是由于我是位Win32程序员,所以我的工作应用程序充满了Win32-ism。 即使它使用WPF技术,也不是WPF应用程序的好例子。 我正在呼吁社区(即您,亲爱的读者)在博客中介绍您针对我的代码的不同(糟糕)选择的解决方案。 您可以获取代码http://www.codeplex.com/babysmash 。 将您的解决方案发布到您的博客,评论或问题跟踪器中,我们将一起学习WPF。 选择一条线,一个部分,子系统或整个应用程序!

    BabySmash is full of shapes and stuff and those shapes a similar look. They have the same stroke (outline color) and stroke thickness (outline width) for example.

    BabySmash充满了各种形状和东西,这些形状看起来很相似。 例如,它们具有相同的笔划(轮廓颜色)和笔划厚度(轮廓宽度)。

    There are a lot of places in my code where I not only repeat the assignment of these styles.

    在代码中有很多地方,我不仅重复了这些样式的分配。

    Shape = Shape = new Path()
    {
    Data = MakeCharacterGeometry(nameToDisplay),
    Fill = fill,
    Stroke = Brushes.Black,
    StrokeThickness = 5,
    Height = 400
    };

    This kind of object initializer code is copy/pasted all over. It's not DRY. (Don't Repeat Yourself) First I started looking for object oriented ways to solve this issue. I figured I'd put in some base class that would do the work, or make a Utility (gasp!) class to do this tedium.

    此类对象初始化程序代码被全部复制/粘贴。 不是干的。 (不要重复自己)首先,我开始寻找面向对象的方法来解决此问题。 我想我会放入一些可以完成这项工作的基类,或者创建一个Utility(gasp!)类来完成此乏味的工作。

    Ideally I wanted this stuff in one place (hence DRY) and I wanted to be able to apply it to my shapes. Later, I realized I also wanted to occasionally apply these properties to some shapes and not others. At that point, my object-oriented idea started to fall down.

    理想情况下,我希望将这些材料放在一个地方(因此干燥),并且希望能够将其应用于我的形状。 后来,我意识到我还想偶尔将这些属性应用于某些形状,而不是其他形状。 那时,我的面向对象的想法开始崩溃。

    I felt (and still feel) like most of the Shape stuff for BabySmash belongs in the XAML markup, and folks on CodePlex agreed. Sherwin Rice kindly pointed me towards Styles.

    我觉得(并且仍然觉得)BabySmash的大多数Shape内容都属于XAML标记,并且CodePlex上的人都同意宣威·莱斯(Sherwin Rice)友善地将我引向Styles。

    He suggested storing these properties in named bundles of styles in the XAML. This gives me the arbitrary flexibility I needed.

    他建议将这些属性存储在XAML中的命名样式集中。 这给了我所需的任意灵活性。

    <Style x:Key="circle" TargetType="Ellipse">
    <Setter Property="Width" Value="400"/>
    <Setter Property="Height" Value="400"/>
    <Setter Property="StrokeThickness" Value="5"/>
    <Setter Property="Stroke" Value="Black"/>
    </Style>

    However, as I started moving most of my shape's details over into XAML, things started repeating again. I was trading one kind of "markup" (the C# kind) for another. Poop. Well, turns out you can base styles on styles, so I was able to keep it DRY again.

    但是,当我开始将形状的大部分细节移到XAML中时,事情又开始重复。 我正在用一种“标记”(C#类型)交换另一种。 船尾。 好吧,事实证明您可以将样式基于样式,因此我能够再次将其保持为DRY。

    <Style x:Key="BabySmashBaseStyle" TargetType="Shape">
    <Setter Property="StrokeThickness" Value="5"/>
    <Setter Property="Stroke" Value="Black"/>
    </Style>

    <Style x:Key="trapezoid" TargetType="Path"
    BasedOn="{StaticResource BabySmashBaseStyle}">
    <Setter Property="Data" Value="F1 M 257.147,126.953L 543.657,126.953L 640.333,448.287L 160.333,448.287L 257.147,126.953 Z"/>
    </Style>

    <Style x:Key="star" TargetType="BabySmash:Star"
    BasedOn="{StaticResource BabySmashBaseStyle}">
    <Setter Property="NumberOfPoints" Value="5"/>
    <Setter Property="Width" Value="400"/>
    <Setter Property="Height" Value="400"/>
    </Style>

    These all live in <Application.Resources> and I can apply them as I like:

    这些都存在于<Application.Resources>中,我可以根据需要应用它们:

    Shape s = new Ellipse();
    s.Style = Application.Current.Resources[Name] as Style;

    I appear to have just touched the surface of Styles, but I'm continuing to dig in. WPF is starting to make sense to me. Just a smidge.

    我似乎刚刚接触过Styles的表面,但是我仍在继续挖掘。WPF对我来说已经很有意义。 只是个小东西。

    Related Links

    相关链接

    翻译自: https://www.hanselman.com/blog/learning-wpf-with-babysmash-keeping-it-dry-with-xaml-styles

    #c wpf xaml使用

    展开全文
  • 开发工具与关键技术:WPF XAML C# 作者:李寿宇 撰写时间:2019/5/6 在我们日常中填写资料的是候有一些资料规定要填写指定的内容超出了就会弹出提示框说你填写的内容不正确。下面我是用我的在学习中一些练习案例做个...

    开发工具与关键技术:WPF XAML C#
    作者:李寿宇
    撰写时间:2019/5/6

    在我们日常中填写资料的是候有一些资料规定要填写指定的内容超出了就会弹出提示框说你填写的内容不正确。下面我是用我的在学习中一些练习案例做个文档分享给大家,我用的是WPF XAML来做的,我做的是新增页面新增资料是判断输入的数据是否输入正确如果不正系统会做出判断你输入的资料不正确或你输入的格式不对。

    1、 第一步在做好的XAML窗口找到对应的文本框添加一个
    TextChanged="txt_PhoneNumber_TextChanged"转到定义就是写判断手机号码地代码了。

    2、 国内手机号码的规则:前3位为网络识别号;第4-7位为地区编码;第8-11位为用户号码。
    现有手机号段:
    移动:134 135 136 137 138 139 147 148 150 151 152 157 158 159
    172 178 182 183 184 187 188 198
    联通:130 131 132 145 146 155 156 166 171 175 176 185 186
    电信:133 149 153 173 174 177 180 181 189 199
    虚拟运营商:170
    整理后:130~139 14[5-9] 15[012356789] 166 17[0-8] 18[0-9] 19[8-9]

    上面的整理用正则表达式来表示

    0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[89])[0-9]{8}$ 
    

    然后用上面的正则表达式来判断手机号码是否输入的格式和号码正确

    3、后台C#的代码了,声明一个string strPhoneNumber接受电话号码值,去掉空格,判断
    strPhoneNumber的长度是否等于手机号码11位的长度,如果超出11位输出"输入的手 机号码过长,请重新输入!“如果输入的的长度等11位使用正则表达式判断是否匹配是 否输入的号码格式正确,正确了就不作判断了,如果不正确的就会输出"输入的手机号 码格式不正确,请重新输入!” 并且清空文本框让用户从新数号码。这时我在新增的窗 口里就可以判断手机号码了。
    代码如下:

    private void txt_PhoneNumber_TextChanged(object sender, TextChangedEventArgs e)
            {
               
                //声明一个string接受电话号码值,去掉空格。
                string strPhoneNumber = txt_PhoneNumber.Text.Trim();
                if (strPhoneNumber.Length == 11)
                {
                    //使用正则表达式判断是否匹配   
                    if (!Regex.IsMatch(strPhoneNumber, @"^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[89])[0-9]{8}$"))
                    {
                        MessageBox.Show("输入的手机号码格式不正确,请重新输入!");
                        txt_PhoneNumber.Text = string.Empty;
                    }
                }
                if (strPhoneNumber.Length > 11)
                {
                    MessageBox.Show("输入的手机号码过长,请重新输入!");
                    txt_PhoneNumber.Text = string.Empty;
                }
            }
    

    用户输入的号码超出了11位时弹出提示框如图
    在这里插入图片描述当用户输入的手机号码格式不正确时弹出以下提示框
    在这里插入图片描述以上是我在学校中实训项目中用WPF XAML C#来做的验证手机号码。
    有不足的地方请见谅谢谢你的观看。

    展开全文
  • WPF XAML 资源样式模板属性存放位置 原文:WPF XAML 资源样式模板属性存放位置WPFXAML 资源申明 类似HTML。 整体来说分3种1.行类资源样式属性 1.1 行内属性 <Button Content="按钮" ...
  • 标记扩展和 WPF XAML

    2016-05-09 11:28:00
    本主题介绍 XAML 的标记扩展概念...本主题专门详细论述了用于 WPF XAML 的标记扩展。 本主题包括下列各节。 XAML 处理器和标记扩展 基本标记扩展语法 XAML 定义的标记扩展 特定于 WPF 的标记扩展 *Extensi...
  • 自己用WPFXAML语言写的一个类似于苹果手机上的滑动按钮的开关,可以直接使用,程序比较简单易懂,没有任何生涩的引用,涉及WPF的资源定义,控件布局,模板自定义,事件触发,动画实现等基本知识,只是新手学习如何...
  • 想要在WPF XAML中使用自己的自定义的特性 如x:Class x:Name 这些
  • WPF XAML 特殊字符(小于号、大于号、引号、&符号) 原文:WPF XAML 特殊字符(小于号、大于号、引号、&符号) XAML 受限于 XML 规则。例如, XML 特别关注一些特殊字符,如 & < > ...
  • WPF XAML概览

    2015-03-06 13:08:06
    微软为了把开发模式从网络开发移植到桌面开发和富媒体网络程序的开发上,微软创造了一种新的开发语言------XAML(读作ZAML),XAML全称Extensible Application MarkUp Language。即可扩展应用程序标记语言。它在做桌面...
  • WPF XAML 系统学习XAML语法

    千次阅读 2015-03-15 18:52:59
    XAML文档的树形结构】    UI在用户眼里面是个平面结构。如下图所示,在用户眼里看来,这个界面就是一个窗体里面平铺了4个文本框和一个按钮的界面。  在传统的Visual C++、Delphi、Visual Basic6.0和...
  • 原文 使用MVVM DataTriggers在WPF XAML视图之间切换 相关文章: http://www.technical-recipes.com/2016/switching-between-wpf-xaml-views-using-mvvm-datatemplate/ 这篇文章解决了能够根据ViewModel类的属性在...
  • WPF XAML中 Storyboard.TargetProperty设置TransformGroup指定的变换"RenderTransform.Children <Grid x:Name="xx" RenderTransformOrigin="0.5,0.5"> <Grid.Render...
  • WPF XAML的读法

    2019-05-29 10:19:00
    XAML 一直以为读作X-A-M-L 不过 一直都是念错了 正确念法:ZAMMEL 类似:ZeIMO [平音] 转载于:https://www.cnblogs.com/T-ARF/p/10942130.html
  • WPF xaml 资源引入

    千次阅读 2018-04-13 10:24:54
    &lt;UserControl x:Class="HomeDecorationPSD.Presentation.Views.UiWindow" xmlns="... xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml...
  • WPF XAML 从零开始认识XAML

    千次阅读 2015-03-09 19:14:24
    剖析最简单的XMAL代码: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml
  • WPF XAML 画线

    千次阅读 2018-08-13 14:23:53
    &lt;Grid&gt;  &lt;!--直线--&gt;  &lt;Line X1="20" Y1="60" X2="360" Y2="60" Stroke="Green" StrokeThickness="...--虚线--&
  • WPF XAML绑定xml

    千次阅读 2014-05-04 20:25:06
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xml
  • WPF XAML 单表删除数据

    2019-05-16 22:45:47
    开发工具与关键技术:SQL WPF C# 作者:李寿宇 撰写时间:2019/5/15 下面我要讲的是WPF 单表删除数据: 删除数据是一件可大可小的事情,肯定有提示框提示提醒用户是否要把数据,删除了数据就删除了,单表删除数据...
  • WPF XAML X名称空间详解

    千次阅读 2015-03-18 21:19:49
    X名称空间里面的成员(如X:Name,X:Class)都是写给XAML编译器看的、用来引导XAML编译器将XAML代码编译为CLR代码。 【X名称空间里面到底都有些什么】  x名称空间映射的是:...
  • WPF XAML剖析

    2012-01-01 00:48:08
    it seems not bad   ...   and this binding converter http://www.silverlightchina.net/html/study/WPF/2011/0727/9320.html     run ui on
  • WPF xaml.cs 设置属性

    2020-04-03 10:19:28
    //设置背景色 WL8.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#0A50A8"));
  • wpf xaml 变成第一步 以旋转的立方体为代码展示

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,569
精华内容 4,227
关键字:

wpfxaml