在WPF窗体中重绘
原文:在WPF窗体中重绘
写这篇主要是为了验证任何元素自身都具备绘图功能.
在默认Window中重写OnRender方法
protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.DrawRectangle(Brushes.White, null, new Rect(0, 0, this.ActualWidth, ActualHeight)); drawingContext.DrawRectangle(Brushes.Blue, null, new Rect(0, 0, 300, 300));
drawingContext.DrawRectangle(Brushes.Green, null, new Rect(0, 0, 200, 200));
drawingContext.DrawRectangle(Brushes.Red, null, new Rect(0, 0, 100, 100)); base.OnRender(drawingContext);
}
结果还是空白一片.
窗体的默认视觉树
![]()
解决方法1:去掉默认视觉树
protected override Visual GetVisualChild(int index)
{
return null;
}
结果恢复正常
![]()
但此方法破坏了窗体默认视觉树,影响了其内部功能
解决方法2:将默认北京颜色设置为空
this.Background = null;
搞了半天原来是被遮住了
记录一下技巧
在WPF窗体中重绘的更多相关文章
- 上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片
原文:上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片 我们知道,如果网站上传图片时,如果用户上传的是CMYK图片,那么在网站上将是无法显示的,通常的现象是出现一个红叉.下面使用将Ima ...
- WPF 窗体中获取键盘和鼠标无操作时的超时提示
原文:WPF 窗体中获取键盘和鼠标无操作时的超时提示 通过调用Windows API中的GetLastInputInfo来获取最后一次输入的时间 , , ); timer.Tic ...
- c#winform自定义窗体,重绘标题栏,自定义控件学习
c#winform自定义窗体,重绘标题栏 虽然现在都在说winform窗体太丑了,但是我也能尽量让桌面应用程序漂亮那么一点点话不多说,先上图 重绘标题栏先将原生窗体设置成无边框,FormBoderSt ...
- WinForm中重绘TabControl选项卡标题
最近开发WinForm频繁使用了TabControl控件,这个控件的选项卡没有BackgroundImage这个属性,那么如何为其各个选项卡添加背景图片呢?(这里说的是每个TabPage的头部,也就是 ...
- 【转】VC的MFC中重绘函数的使用总结(整理)
原文网址:http://www.cnblogs.com/x8023z/archive/2008/12/09/mfc33.html 在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘Inva ...
- wpf窗体中复合控件焦点控制
1. 自定义控件 在UserControl标记中 <UserControl KeyboardNavigation.ControlTabNavigation="Local ...
- wpf 窗体中显示当前系统时间
先看一下效果: 这其实是我放置了两个TextBlock,上面显示当前的日期,下面显示时间. 接下来展示一下代码: 在XAML中: <StackPanel Width="205" ...
- WPF窗体中嵌入/使用WinForm类/控件(基于.NET Core)
如题,WPF中嵌入WinForm的做法,网络上已经很多示例,都是基于.NET XXX版的. 今天King様在尝试WPF(基于.NET Core 3.1)中加入Windows.Forms.ColorDi ...
- WPF 窗体中的 Canvas 限定范围拖动 鼠标滚轴改变大小
xaml代码: <Canvas Name="movBg"> <Canvas.Background> <LinearGradientBrush EndP ...
随机推荐
- Linux平台Makefile文件的编写基础篇
目的: 基本掌握了 make 的用法,能在Linux系统上编程. 环境: Linux系统,或者有一台Linux服务器,通过终端连接.一句话:有Linux编译环境. 准备: ...
- OC学习篇之---协议的概念和用法
这一篇文章我们在来看一下OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Java中的接口(抽象类),只不过OC中的名字 ...
- swift项目第六天:中间发布按钮的封装以及监听点击事件
import UIKit /* 总结:1:给UIButton写分类,新建文件swiftFile,一般为了区分起名字都是名字-Extension,要想调用UI控件需要导入 import UIKit框架, ...
- php 小程序获取渠道二维码 保存
function ppost($url,$arr){ $post_data = json_encode($arr); $url=$url; $ch = curl_init(); curl_setopt ...
- HTML标签的权重
原文 简书原文:https://www.jianshu.com/p/c86d540aec40 大纲 1.HTML权重标签 2.常见的权重标签 3.常见的权重标签的使用 1.HTML权重标签 SEOer ...
- [D3] Create Labels from Non-numeric Data with Ordinal Scales in D3 v4
When your data contains discrete, non-numeric property values that you need to format or convert bef ...
- Windows Server 2012 R2 部署 Exchange 2013
我的环境在DC上 ,一般建议Exchange 增加DC 通过管理员权限执行PowerShell 来安装一些IIS组件, 安装命令例如以下: Install-WindowsFeature AS-HTTP ...
- Android OkHttp网络连接封装工具类
package com.lidong.demo.utils; import android.os.Handler; import android.os.Looper; import com.googl ...
- php curl 添加cookie伪造登陆抓取数据(摘自网络)
有的网页必须登陆才能看到,这个时候想要抓取信息必须在header里面传递cookie值才能获取 1.首先登陆网站,打开firebug就能看到对应的cookie把这些cookie拷贝出来就能使用了 2. ...
- Unity3D资源管理架构
在Unity3D引擎中,场景资源文件(.unity)是以2进制格式存储的.但同一时候它也有一种基于文本的表现格式. 可在Edit>Project Setting>Editor 中设置: 1 ...