精华内容
下载资源
问答
  • wpf xaml 简单例子

    2012-09-08 18:22:24
    wpf xaml 数据binding 简单例子
  • 如何调试WPF XAML文件中的设计时错误?
  • 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中表示运算符

    2021-07-28 14:13:42
    WPF XAML中表示运算符 引用System名称空间,以输入string类型的直接内容 引用集合的名称控件,以使用ArrayList来在XAML中创建集合 <genric:ArrayList x:Key="HiString"> <system:String>+</system...

    WPF XAML中表示运算符

    1. 引用System名称空间,以输入string类型的直接内容
    2. 引用集合的名称控件,以使用ArrayList来在XAML中创建集合
    <genric:ArrayList x:Key="HiString">
                <system:String>+</system:String>
                <system:String>-</system:String>
                <system:String>+;-</system:String>
            </genric:ArrayList>
    <ComboBox ItemsSource="{Binding Source={StaticResource HiString}}"> 
    
    展开全文
  • 简单的WPF XAML 重构返回按钮样式
  • WPF xaml数据绑定

    2020-09-09 22:08:09
    xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定
  • 自己用WPFXAML语言写的一个类似于苹果手机上的滑动按钮的开关,可以直接使用,程序比较简单易懂,没有任何生涩的引用,涉及WPF的资源定义,控件布局,模板自定义,事件触发,动画实现等基本知识,只是新手学习如何...
  • 默认情况下,在WPF应用程序中非矢量图形的用法太复杂了,我将展示它如何简单和方便。
  • WPF XAML 系统学习XAML语法

    千次阅读 2015-03-15 18:52:59
    XAML文档的树形结构】    UI在用户眼里面是个平面结构。如下图所示,在用户眼里看来,这个界面就是一个窗体里面平铺了4个文本框和一个按钮的界面。  在传统的Visual C++、Delphi、Visual Basic6.0和...
    【XAML文档的树形结构】

       

         UI在用户眼里面是个平面结构。如下图所示,在用户眼里看来,这个界面就是一个窗体里面平铺了4个文本框和一个按钮的界面。



        在传统的Visual C++、Delphi、Visual Basic6.0和Windows Form程序员的思维里,UI也是一个平面的结构。因此,程序员要做的事情就是根据美工给的给定的UI布局把控件安置在窗体的表面,并用使用长度,宽度和间距把控件对齐。


        与传统的设计思维不同,XAML使用树形逻辑结构来描述UI,下面是用来描述界面布局的XAML代码:

    <Window x:Class="WpfApplication1.wnd31"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="304" Width="525">
        <Grid Background="LightSlateGray">
            <Grid.RowDefinitions>
                <RowDefinition Height="49*"/>
                <RowDefinition Height="70*"/>
                <RowDefinition Height="62*"/>
                <RowDefinition Height="50*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="276*"/>
                <ColumnDefinition Width="241*"/>
            </Grid.ColumnDefinitions>
            <TextBox Height="28" Margin="5" Text="TextBox" Width="497" Grid.ColumnSpan="2" Grid.Row="0"/>
            <TextBox Height="28" Margin="5" Text="TextBox" Width="497" Grid.ColumnSpan="2" Grid.Row="1"/>
            <TextBox Height="28" Margin="5" Text="TextBox" Width="257" Grid.ColumnSpan="1" Grid.Row="2"/>
            <TextBox Height="28" Margin="5" Text="TextBox" Width="226" Grid.ColumnSpan="1" Grid.Row="2" Grid.Column="1" />
            <Button Content="Button" Margin="5" Width="497" Grid.ColumnSpan="2" Height="28" Grid.Row="3" Click="Button_Click"/>
        </Grid>
    </Window>

        因为代码中有许多对Attribute的属性,所以结构看起来并不是那么清晰。如果我们把对Attribute的赋值都去掉,那么上面的代码就显现了它的树形框架结构。

    <Window>  
        <Grid>         
            <TextBox />  
            <TextBox />  
            <TextBox />  
            <TextBox />  
            <Button />   
        </Grid>  
    </Window>

        如果用一张图来表示上面的那段代码,它会是下面这个样子 



        以<Window>对象为根节点,一层一层向下包含。这种树形结构对于WPF整个体系都具有非常重要的意义,它不但影响着UI的布局设计,还深刻的影响着WPF的属性(Property)子系统和事件(Event)子系统等方方面面。在实际的编程过程中,我们经常要在这棵树上进行按名称查找元素,获取父/子节点等操作,为了方便操作这棵树,WPF基本类库为程序员准备了VisualTreeHelperLogicTreeHelper两个助手类(Helper Class),同时还在一些重要的基类里封装了一些专门用于操作这棵树的方法。


    【XAML中为对象赋值的方法】


        XAML是一种声明性语言,XAML会为每一个标签创建一个与之对于的对象,对象创建之后要对它的属性进行必要的初始化之后才有使用意义。因为XAML语言不能够编写程序的运行逻辑,所以一份XAML文档除了使用标签声明对象就是初始化对象属性了。

    注意:
    XAML中对对象赋值总共有两种方法:
    A:使用字符串进行简单赋值。
    B:使用属性元素(Property Element)进行复杂赋值。


    【使用标签的Attribute为对象属性赋值】


        前面我们已经知道,一个标签的Attribute有一部分与对象的Property对应,<Rectangle>标签里面的Fill这个Attribute就是这样,他与Rectangle类对象的Fill属性对应,在MSDN文档库里可以查询到,Retangle类的Fill类型是一个Brush。Brush是一个抽象类,凡是已Brush为基类的类都可以成为Fill的属性值。Brush的派生类有很多:


    SolidColorBrush:       单色画刷。
    LinearGradientBrush:线性渐变画刷。
    RadialGradientBrush:径向渐变画刷。
    ImageBrush:             位图画刷。
    DrawingBrush:          矢量图画刷。
    VisualBrush:              可视元素画刷。


        使用字符串对Attribute的简单赋值,假设我们的Rectangle只需要填充成单一的蓝色,那么我们只需要简单的写成:

    <Window x:Class="WpfApplication1.wnd321"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="wnd321" Height="343" Width="452">
        <Grid VerticalAlignment="Center" HorizontalAlignment="Center">
            <Rectangle x:Name="rectangle" Width="200" Height="150" Fill="Blue"/>
        </Grid>
    </Window>



        我们看到,blue这个字符串最终被翻译成了SolidcolorBrush并赋值给了Rectangle对象。换成C#代码是这样。

    SolidColorBrush brush = new SolidColorBrush();  
    brush.Color = Colors.Blue;  
    this.rectangle1.Fill = brush;

        需要注意的是,这种Attribute=Value的赋值时,由于XAML语法有限,Value只能是一个字符串值,这就引发了下面两个问题:
    A,如果一个类可以使用XAML类来进行声明,并允许它的的Property可以和它的Attribute互相映射,那就需要为这些Property准备适当的转换机制。


    B,由于Value是个字符串,所以其格式复杂程度有限,尽管可以在转换机制里面包含一定的按格式解析字符串的功能以便转换成较复杂的目标对象,但这会让最终的XAML使用者头疼不已,因为他们不得不在一个没有编码辅助的情况下手写一个格式复杂的字符串来满足需求。


        第一个问题的解决方式是使用TypeConverter类的派生类,在派生类里面重新TypeConverter的一些方法,第二个问题的解决办法就是使用属性元素(Property Element)。


    【属性元素】


        在XAML中,非空标签均具有自己的内容(Content)。标签的内容就是指夹在起始标签和结束标签中的一些子级标签,每个子级标签都是父级标签中的一个元素(Element),简称为父级标签的一个元素。顾名思义,属性元素指的就是某个标签的一个元素对应这个标签的一个属性,即已元素的形式来表达一个实例的属性。代码描述为:

    <ClassName>    
               <ClassName.PropertyName>  
               </ClassName.PropertyName>  
    <ClassName>

    使用线性渐变来填充这个矩形

    <Window x:Class="WpfApplication1.wnd323"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="wnd323" Height="300" Width="400">
        <Grid>
            <Rectangle x:Name="rectangle" Width="200" Height="150">
                <Rectangle.Fill>
                    <LinearGradientBrush>
                        <!--渐变的位置颜色-->
                        <LinearGradientBrush.GradientStops>
                            <GradientStop Offset="0.2" Color="LightBlue"/>
                            <GradientStop Offset="0.7" Color="Blue"/>
                            <GradientStop Offset="1"   Color="DarkBlue"/>
                        </LinearGradientBrush.GradientStops>
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
        </Grid>
    </Window>



        一般情况下,对于复杂的绘图和动画创作,应该先在Blend里进行操作,然后回到VS里进行精确的微调,在保证效果的情况下,提高代码的可读性与可维护性。


    这里几个简化XAML的技巧:
    能用Atrribute=value方式进行赋值的就不要使用属性元素。
    充分利用默认值,除去冗余。
    充分利用XAML的简写方式:XAML的简写方式很多,需要在工作中慢慢积累。


    【标记扩展】


        有时候,一个对象的属性值,依赖在其它对象的某个属性上,此时就需要使用标记扩展了。


        下面的例子是TextBox的Text属性依赖Slider的Value上,这样Slider移动时,TextBox的值会跟着移动。

    <Window x:Class="WpfApplication1.wnd324"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="wnd324" Height="276" Width="494">
        <StackPanel Background="LightSlateGray">
            <Slider x:Name ="slider1" Margin="5" ValueChanged="slider1_ValueChanged"/>
            <TextBox x:Name ="txtBox" Height="23" Text="{Binding ElementName=slider1, Path=Value, Mode=OneWay}" Margin="5"/>
        </StackPanel>
    </Window>
    



    注意只有MarkupExtension类的派生类才能使用标记扩展语法创建对象。


    【引用命名空间】


    格式规范

    xmlns:映射名="clr-namespace:类库中名称空间的名字;assembly=类库文件名"


    如:   xmlns:controls="clr-namespace:Controls;assembly=MyLibrary"


    参考《深入浅出WPF》

    展开全文
  • 想要在WPF XAML中使用自己的自定义的特性 如x:Class x:Name 这些
  • WPF XAML 特殊字符(小于号、大于号、引号、&符号) 原文:WPF XAML 特殊字符(小于号、大于号、引号、&符号) XAML 受限于 XML 规则。例如, XML 特别关注一些特殊字符,如 & < > ...
    原文: WPF XAML 特殊字符(小于号、大于号、引号、&符号)

        XAML 受限于 XML 规则。例如, XML 特别关注一些特殊字符,如  & < > 如果试图使用这些字符设置一个元素内容,将会遇到许多麻烦,因为 XAML 解析器认为您正在做其他的事情——例如,创建一个嵌套元素。

        例如,假设需要创建一个包含<Click Me>文本的按钮。下面的标记是不能完成这一工作的:

    <Button ...>
        <Click Me>
    </Button>

        此处问题是,上面的标记看起来好像是正在试图创建一个名为 Click,并带有一个名为Me的特性的元素。解决问题的方法是使用实体引用来代替哪些特殊字符,实体引用是 XAML 解析器能够正确解释的特定字符编码。下表列出了可能选用的字符实体。注意,只有当使用特性设置属性值时,才需要使用引号(")字符实体,因为引号用于指示一个特性值的开始和结束。

    XAML 字符实体
    特殊字符字符实体
    小于号(<)&lt;
    大于号(>)&gt;
    &符号(&)&amp;
    引号(")&quot;

        下面是使用字符实体的正确标记:

    <Button ...>
        &lt;Click Me&gt;
    </Button>

     参考:http://www.wxzzz.com/?id=125

    posted on 2018-09-05 00:11 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

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

    展开全文
  • XAML 行为是一种易于使用的方法,可使用最少的代码向 WPF 应用程序添加常见且可重用的交互性。 XAML 行为的使用受 MIT 许可证管理。 我们正在与以指导行为项目并评估传入的拉取请求。 入门 从哪里得到它 资源 更多...
  • 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的读法

    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绑定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 X名称空间详解

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

    2020-04-03 10:19:28
    //设置背景色 WL8.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#0A50A8"));
  • 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剖析

    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 变成第一步 以旋转的立方体为代码展示
  • wpf 项目从2010 升级为2012 常碰到的问题,自己写段小代码比埋怨实在多
  • WPF xaml引用自定义类提示命名空间不存在对应名称

    万次阅读 多人点赞 2018-11-22 10:09:44
    VS2017的WPF工程,自定义类明明存在,编译和运行都可以通过,就是在xaml预览的时候提示“命名空间不存在对应名称XXXX” 网上常规解决方法: 1. 清理解决方案后重新生成; 2. 如果方法的一不行,将解决方案切换为...
  • WPF XAML的命名空间

    2010-07-07 16:20:00
    WPF,XAML命名空间的几种形式,大概的意思。
  • 第一种方法: 在vs2015的菜单栏上选择工具→选项 搜索codelens, 将启用 取消勾选,重启VS 修改---关闭git ...3,若是编译时卡顿,最有效的方法如下 ...4,调试时按F10/F11巨卡无比的原因是打开了 IntelliTrace, 去...
  • WPFXAML中特殊字符的转义代码 字符 转义字符 & & > > ’ ' { {}{ 回车 或者 换行 或者 Tab 或者 空格 或者
  • WPF XAML设计器提示“资源无法解析”

    千次阅读 2020-01-30 12:51:18
    WPF项目突然就开始提示“无法解析资源xxxxxxxxx”,然后设计器里面各种效果都不翼而飞,但是编译正常,运行正常。按照网上提出的办法更改.NET版本、更改release/debug、重新生成项目、重启VS乃至重启机器都不能解决...
  • http://www.cnblogs.com/yigedaizi/p/4523217.html 二、命名空间 细心的朋友肯定会问标签里的 ... xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://sc
  • 按住Ctrl的同时,点击两次M键。
  • 编辑 xaml 时,VS 提示一个存在的类不存在(如:命名空间"xxx"中不存在"xxx"名称)。 运行环境 Windows 版本:Window 10 VS 版本:Visual Studio 2017 社区版 15.9.12 解决方法 修改解决方案配置至Release编译后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,319
精华内容 16,127
关键字:

wpfxaml