首页 > 其他分享 >WPF CanFreeze Freeze IsFrozen

WPF CanFreeze Freeze IsFrozen

时间:2024-08-25 17:14:56浏览次数:10  
标签:Windows bgBrush System IsFrozen grid using WPF CanFreeze

Freezable—The base class for objects that can be “frozen” into a read-only state for performance reasons. Freezables, once frozen, can be safely shared among multiple threads, unlike all other DispatcherObjects. Frozen objects can never be unfrozen,but you can clone them to create unfrozen copies. Most Freezables are graphics primitives such as brushes, pens, and geometries or animation classes.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp281
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        Grid grid { get; set; }
        SolidColorBrush bgBrush { get; set; }

        public MainWindow()
        {
            InitializeComponent();
            GridBackgroundFreezeUnFreeze();
        }

        
        private void GridBackgroundFreezeUnFreeze()
        {
            grid = new Grid();
            grid.ToolTip = "Brush CanFreze Freeze IsFrozen Clone";
            bgBrush = new SolidColorBrush(Colors.Red);
            if(bgBrush.CanFreeze)
            {
                bgBrush.Freeze();
            }
            grid.Background= bgBrush;
            this.Content = grid;
        }

        private void Window_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if(bgBrush.IsFrozen)
            {
                SolidColorBrush blueBrush = bgBrush.Clone();
                blueBrush.Color = Colors.Blue;
                grid.Background= blueBrush;

            }
            else
            {
                grid.Background = new SolidColorBrush(Colors.Blue);
            }
        }
    }
}

 

 

标签:Windows,bgBrush,System,IsFrozen,grid,using,WPF,CanFreeze
From: https://www.cnblogs.com/Fred1987/p/18379170

相关文章

  • WPF 的 await Application.Current.Dispatcher.InvokeAsync,Func 如果是Task , 等待赋
    最近在检查我们组内的代码,发现好多用到awaitApplication.Current.Dispatcher.InvokeAsync相信好多WPF的开发都会用到该方法做UI线程切换。但是细看里边的执行,发现了个别存在存在没有等待完成的情况  执行的结果是i为null值。这也就说明了执行了awaitApplica......
  • WPF XamlReader Load xaml and parse
    //ThexamlmaterialnamedMainWin.xaml<Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • WPF ystem.Windows.Markup.XamlParseException HResult=0x80131501 Message='Spec
    System.Windows.Markup.XamlParseExceptionHResult=0x80131501Message='Specifiedclassname'WpfApp268.MainWindow'doesn'tmatchactualrootinstancetype'System.Windows.Window'.RemovetheClassdirectiveorprovideanin......
  • WPF 模仿前端大佬写一个Hover效果
    先看一下效果吧: 原博主的地址:【动画进阶】神奇的卡片Hover效果与Blur的特性探究-ChokCoco-博客园(cnblogs.com)原效果是一个css效果,我们采用WPF的方式模仿一下因为技术有限,没有原博主的那么好看,毕竟盗版永远比不过原版...然后这里看一下盗版的怎么写吧先是拿到......
  • WPF 模拟UWP原生窗口样式——亚克力|云母材质、自定义标题栏样式、原生DWM动画 (附我封
    先看一下最终效果,左图为使用亚克力材质并添加组合颜色的效果;右图为MicaAlt材质的效果。两者都自定义了标题栏并且最大限度地保留了DWM提供的原生窗口效果(最大化最小化、关闭出现的动画、窗口阴影、拖拽布局器等)。接下来把各部分的实现一个个拆开来讲讲。一、使用窗口材质特......
  • WPF 设备输入事件封装
    本文主要介绍WPF应用对鼠标输入、触摸屏触笔以及触摸事件的封装之前有简单说明设备输入类型 WPF屏幕点击的设备类型-唐宋元明清2188-博客园(cnblogs.com)1、鼠标- 通过Mouse相关的事件参数MouseButtonEventArgs中的数据,e.StylusDecice==null表示没有触摸设备,所以设备为......
  • WPF中如何使用后台代码动态创建数据模板(DataTemplate)
    数据模板回顾 在WPF中数据模板可以控制数据的呈现方式。对于一些简单的数据,例如一个string,一个int,在显示时,无须额外控制。但是对于复杂数据类型,就需要使用数据模板来控制数据的呈现方式。 一个很简单的例子假设我们定义了一个学生类1publicclassStudent2......
  • 「对比评测」标准WPF DataGrid与DevExpress WPF GridControl有何不同?(一)
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • WPF:MVVM的由来与属性绑定的过程
    WPF:MVVM的由来与属性绑定的过程1、MVVM(1)MVVM是什么?​ MVVM(Model-View-ViewModel)是一种软件架构设计模式MVVM模式。有助于分离应用程序的业务逻辑和用户界面层,使得开发过程更易于管理,同时也便于单元测试。Model?现实世界中对象的抽象结果。View?View=UI。ViewModel?Vie......
  • 【WPF】WPF项目.exe可执行文件在非开发环境打不开
    如题,做一个小工具,开发完之后把bin/release文件夹打包发他,但在他电脑打不开。打开可靠性监视器:按下Win+S,在搜索栏中输入“控制面板”,然后点击进入。在控制面板中选择“系统和安全”。然后选择“安全与维护”。在“安全与维护”窗口中,展开“维护”部分,并点击“查看可靠性......