C# 在画布上绘制时,布局是否关心大小的1像素差异?

C# 在画布上绘制时,布局是否关心大小的1像素差异?,c#,wpf,layout,canvas,C#,Wpf,Layout,Canvas,如果我有一个测量到一个大小为100的区域的对象,然后我使用像素宽度为2的画笔从0到100画一条线,内容将超出测量区域 内容大于测量尺寸这一事实会迫使布局更新吗?我只是想知道布局系统有多挑剔。您在画布元素上绘制的任何内容都将被剪裁为画布元素的最大大小,并且/或者如果您将其用作剪辑,则会被剪裁为路径 通过画布元素的上下文绘制的任何内容都不会调用浏览器中其他元素的任何布局更新。上下文是完全隔离的,基本上是一个位图,您可以在不同于浏览器中其他元素的级别上操作它 所以答案是否定的 但是,值得一提的是,浏览

如果我有一个测量到一个大小为100的区域的对象,然后我使用像素宽度为2的画笔从0到100画一条线,内容将超出测量区域


内容大于测量尺寸这一事实会迫使布局更新吗?我只是想知道布局系统有多挑剔。

您在画布元素上绘制的任何内容都将被剪裁为画布元素的最大大小,并且/或者如果您将其用作剪辑,则会被剪裁为路径

通过画布元素的上下文绘制的任何内容都不会调用浏览器中其他元素的任何布局更新。上下文是完全隔离的,基本上是一个位图,您可以在不同于浏览器中其他元素的级别上操作它

所以答案是否定的


但是,值得一提的是,浏览器中的更新可能会影响画布的内容(即清除画布),因此请记住这一点,尤其是在重新调整浏览器窗口大小时。您可以在必要时收听
调整大小
事件以执行画布更新。

使用
画布
,如果应用较大的内容,则不会运行任何布局过程,
画布
是一个简单的布局父级,它使用子级X、Y、宽度和高度来布局控件/形状,但是,根据
Canvas
上的
cliptobunds
属性,屏幕上仍可能呈现较大的contenet