【wpf】xaml 中的参数复用

这篇具有很好参考价值的文章主要介绍了【wpf】xaml 中的参数复用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景 

xaml中有几种复用的方式:

有时在xaml中,我们需要复用一些参数,比如 固定的一个值。

有时是固定的一个样式。

资源,sys的引入

有时多个控件都要设置一个高度,我可以引入sys

【wpf】xaml 中的参数复用

声明 

我就使用这个吧:xmlns:sys="clr-namespace:System;assembly=mscorlib"

<Window.Resources>
   <sys:Double x:Key="m">500</sys:Double>
</Window.Resources>

使用

<Grid Height="{StaticResource m}">

类型的转换问题

用的更多的其实是margin,我们试一试:

【wpf】xaml 中的参数复用

这里 mm 用的是string 类型,但是Margin提示类型不兼容,这是为啥? 平时我们不都是直接给的字符串吗? 这里涉及到一个知识点,类型的转换:

{ } 大括号里面的内容被称之为表达式内容,和之前非表达式不同地方在于,非表达式包含简易转换器,可以帮我转化一些常见的类型,但是一旦使用表达式,那么这个简易转换器就不存在了。  

所以如果,想共享margin 的设置,可以这么写:

<Window.Resources>
    <Thickness x:Key="t" Bottom="1" Left="0" Right="0" Top="1"/>
</Window.Resources>
<Grid Height="{StaticResource m}"  Margin="{StaticResource t}">

申明一个  Thickness, 因为 Margin这个属性的类型就是 Thickness。

<Thickness x:Key="t" Bottom="1" Left="0" Right="0" Top="1"/>

然后再使用:  Margin="{StaticResource t}"

那,我们就可以举一反三了,比如我们的背景属性的类型是SolidColorBrush,那我们就能申明这样一个资源进行复用:

<SolidColorBrush x:Key="BorderBrush" Color="#CCCEDB" />

通过样式实现复用

<Window.Resources>
    <Thickness x:Key="t" Bottom="1" Left="0" Right="0" Top="1"/>
    <Style x:Key="gg" TargetType="Grid">
        <Setter Property="Margin" Value="5,50,5,5"/>
    </Style>
</Window.Resources>
<Grid Height="{StaticResource m}" Style="{StaticResource gg}" Margin="{StaticResource t}">

使用 Style ,通过样式进行设置:

<Style x:Key="gg" TargetType="Grid">
        <Setter Property="Margin" Value="5,50,5,5"/>
</Style>

那这两种的区别是什么呢?

第一种方式,比Style 的方式,优先级更高,适用范围更广。

Style的方式,写起来更简单,不过需要指定 TargetType 的类型,表示这个 Style 需要应用到哪个类型的控件。

小结:

这些都是xaml中复用的一些方法,希望你能用的到。文章来源地址https://www.toymoban.com/news/detail-472180.html

到了这里,关于【wpf】xaml 中的参数复用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WPF XAML中使用依赖属性

    自定义的控件 MyCustomControl ,它有一个依赖属性 MyProperty 。首先,我们需要在控件的代码文件中创建这个依赖属性: 在XAML文件中使用这个控件及其依赖属性: 在这个例子中, local 是XAML文件中定义的XML命名空间前缀, clr-namespace:WpfApp 指定了 MyCustomControl 定义所在的命名空间。

    2024年02月20日
    浏览(41)
  • Microsoft.Xaml.Behaviors.Wpf 的使用

    System.Windows.Interactivity.WPF这个已经过时,可以使用 Microsoft.Xaml.Behaviors.Wpf ,基本使用查不多,

    2024年02月13日
    浏览(48)
  • 进一步了解WPF UI 实现XAML语法

    Extensible Application Markup Language (XAML) 是一种用于声明性应用程序编程的标记语言。 Windows Presentation Foundation (WPF) 实现 XAML 处理器实现并提供 XAML 语言支持。 WPF 类型的实现为 XAML 表示提供了必要的类型支持,从而确保了顺畅的集成和高效的运行。 在 XAML 标记中创建 WPF 应用程序

    2024年02月02日
    浏览(35)
  • WPF国际化的实现方法(WpfExtensions.Xaml)

    https://blog.csdn.net/eyupaopao/article/details/120090431 resx资源文件实现 resx资源文件,实现的过程比第一种复杂,但resx文件本身编辑比较简单,维护起来比较方便。需要用到的框架:WpfExtensions.Xaml 为每种语言添加.resx资源文件,放在I18nResource文件夹下 I18nResource.resx 代表英语,名字不要

    2024年02月12日
    浏览(31)
  • 二、深入浅出WPF之系统学习XAML语法

    跟Winforms一样,UI也是个平面结构,与winforms的设计思维不同,WPF使用树形逻辑来描述UI,下面是UI布局的简单代码 实际的页面效果:

    2024年02月16日
    浏览(49)
  • 【.NET深呼吸】将XAML放到WPF程序之外

    上一篇水文中,老周说了一下纯代码编写 WPF 的大概过程。不过,还是不够的,本篇水文中咱们还要更进一步。 XAML 文件默认是作为资源打包进程序中的,而纯代码编写又导致一些常改动的东西变成硬编码了。为了取得二者平衡,咱们还要把一些经常修改的东西放到 XAML 文件

    2024年02月09日
    浏览(39)
  • wpf复制xaml及其cs窗体到其他项目 添加现有项,选 .xaml.cs,点添加即可。VS2022

    添加现有项,选 LoadingWindow.xaml.cs,点添加即可。

    2024年02月09日
    浏览(35)
  • WPF绘图指南:用XAML轻松实现圆、线、矩形、文字、图片创意元素

      概述: 在WPF中,通过使用不同的元素如Ellipse、Line、Rectangle等,可以轻松绘制各种图形,包括圆、线条、椭圆、矩形、多边形等。同时,通过TextBlock展示文字,Image展示图片,以及Path创建路径和曲线,使得图形的绘制变得灵活多样。通过简单的XAML代码,开发者可以快速构建

    2024年03月13日
    浏览(46)
  • 如何让WPF中的ValidationRule实现参数绑定

    应用开发过程中,常常会对用户输入内容进行验证,通常是基于类型、范围、格式或者特定的要求进行验证,以确保输入符合预期。例如邮箱输入框校验输入内容是否符合邮箱格式。在WPF中,数据模型允许将 ValidationRules 与 Binding 对象关联,可以通过继承 ValidationRule 类并重写

    2024年02月12日
    浏览(41)
  • WPF实现更加灵活绑定复杂Command(使用Microsoft XAML Behaviors 库)

    1、安装NuGet          2、在XAML的命名空间引入: 3、使用(这里是设置了一个Canvas的点击事件,其它面板也是类似这样设置):         --我这里的ViewModel部分是这样子的 4、这样就可以在ViewModel中直接给这个Command内容了,不用像之前那么麻烦地绑定Command了,这样更加清晰,

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包