首页 > 其他分享 >wpf样式学习

wpf样式学习

时间:2024-07-24 09:29:05浏览次数:8  
标签:样式 app Binding 学习 RelativeSource wpf 加载

学习大佬视频地址:https://www.bilibili.com/video/BV1nY411a7T8/?p=58&spm_id_from=333.788.top_right_bar_window_history.content.click&vd_source=a4e06be300e655612460fd5149552558

wpf样式加载

窗体加载

<Window.Resources>
    <Style TargetType="Button">
        <Setter Property="Background" Value="Blue"/>
        <Setter Property="Foreground" Value="White"/>
    </Style>
</Window.Resources>

app加载

写样式文件,或者直接在app中加载

//样式文件
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <materialDesign:BundledTheme
                BaseTheme="Dark"
                PrimaryColor="DeepPurple"
                SecondaryColor="Lime" />
             //地址加载(可以多个)
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
        </ResourceDictionary.MergedDictionaries>
        //直接写样式
        <Style x:Key="MyListBoxItemStyle" TargetType="ListBoxItem">
            <Setter Property="MinHeight" Value="40" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBoxItem}">
                        <Grid>
                            <Border x:Name="borderHeader" />
                            <Border x:Name="border" />
                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                        </Grid>

                        <ControlTemplate.Triggers>
                            <Trigger Property="IsSelected" Value="True">
                                <Setter TargetName="borderHeader" Property="BorderThickness" Value="4,0,0,0" />
                                <Setter TargetName="borderHeader" Property="BorderBrush" Value="{DynamicResource PrimaryHueLightBrush}" />
                                <Setter TargetName="border" Property="Background" Value="{DynamicResource PrimaryHueLightBrush}" />
                                <Setter TargetName="border" Property="Opacity" Value="0.2" />
                            </Trigger>

                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter TargetName="border" Property="Background" Value="{DynamicResource PrimaryHueLightBrush}" />
                                <Setter TargetName="border" Property="Opacity" Value="0.2" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        
    </ResourceDictionary>
</Application.Resources>

样式的重点

ContentPresenter:动态绑定内容(<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />)

RelativeSource:找数据来源(<MouseBinding MouseAction="LeftClick"

Command="{Binding DataContext.NavigateCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}}"
CommandParameter="{Binding}"/>)

 CommandParameter:传递参数({Binding ElementName=todoList,Path=SelectedItem})

Converter:参数值转换( IsChecked="{Binding Status,Converter={StaticResource intToBool}}")

 

标签:样式,app,Binding,学习,RelativeSource,wpf,加载
From: https://www.cnblogs.com/shuaimeng/p/18320117

相关文章

  • 【Linux】1.Linux的基本指令---快速学习6个指令,开启新世界的大门
     欢迎来到CILMY23的博客......
  • Nodify学习 四:添加移除连接控制器,设置节点初始位置
    前置移除连接要删除连接,只需监听来自连接器本身或编辑器的断开连接事件,并删除具有连接器作为源或目标的连接。为了简单起见,我们将为 NodifyEditor 实现 DisconnectConnectorCommand。首先让我们将其添加到 EditorViewModel。 publicclassEditorViewModel{public......
  • 创建具有标量特征和 N 维坐标向量特征的机器学习 Numpy 数组
    我正在尝试为ML程序格式化我的数据。有33,000个事件,每个事件有3个我想考虑的东西:质量、能量、坐标。质量的形状为(33000,),看起来像:[188.9189.0125.7...127.4201.0210.1]。能量也是(33000,)并且看起来相同:[123...8910]。然后,我还有一个形状为(33000,......
  • 2024.7.23 c语言学习笔记
    复习:什么是指针?   也叫地址address,就是内存块的首位置,英文名叫painter。他是一个常量,指针不能被赋值,不能自增自减,例如:数组名就是内存块首地址,他就是一个指针常量。Inta=10,&a就是首地址,是指针常量;什么是指针变量?顾名思义,存放指针(地址)数据的变量,也叫地址变量。就......
  • 《昇思 25 天学习打卡营第 18 天 | 扩散模型(Diffusion Models) 》
    《昇思25天学习打卡营第18天|扩散模型(DiffusionModels)》活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp签名:Sam9029扩散模型(DiffusionModels)扩散模型概述扩散模型(DiffusionModels),特别是去噪扩散概率模型(DDPM),在图像、音频、视频生成领......
  • 学习prism
    学习大佬的视频地址:https://www.bilibili.com/video/BV1nY411a7T8/?p=58&spm_id_from=333.788.top_right_bar_window_history.content.click&vd_source=a4e06be300e655612460fd5149552558然后从大佬的代码中学习//事件模型publicclassMessageModel{publicstr......
  • 昇思25天学习打卡营第20天|K近邻算法实现红酒聚类
    K近邻算法实现红酒聚类实验目的K近邻算法原理介绍分类问题回归问题距离的定义实验环境数据处理数据准备数据读取与处理模型构建--计算距离模型预测实验小结本实验主要介绍使用MindSpore在部分wine数据集上进行KNN实验。实验目的了解KNN的基本概念;了解如何使用Mind......
  • opencascade AIS_InteractiveContext源码学习9 obsolete methods
    AIS_InteractiveContext前言交互上下文(InteractiveContext)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才......
  • 人工智能与机器学习原理精解【3】
    文章目录泰勒级数逼近基础海森矩阵一、定义与性质一、定义二、性质三、应用四、结论一阶导数和二阶导数的几何意义一阶导数的几何意义二阶导数的几何意义应用示例导数与微分的区别1.定义与本质2.几何意义3.表达式与关系4.应用场景可微函数定义几何意义性质例子导......
  • 黑马pink JavaScript学习笔记_Web APIs Day2
    事件监听(绑定)什么是事件?事件是系统内发生的动作或者发生的事情。比如:用户点击页面上的一个按钮。什么是事件监听?就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为注册事件比如:鼠标经过的时候,弹出一个alert“鼠标经过了~”语法元素对象.addEven......