问题标签 [visualbrush]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
444 浏览

wpf - Datagrid 列拖动指示器被剪裁

编辑:Pavel 已经表明这可能不是 VisualBrush 的错,所以我已经为我的具体问题重命名了这个问题。

该示例是 WPF 数据网格;向右滚动,直到列标题部分可见。拖动部分可见的列标题以重新排序。拖动指示器是标题的局部视图(不完整)

我的解决方案- 仍然对其他解决方案感兴趣,
我订阅了 ColumnReordering 并将拖动指示器替换为我自己的。为我自己的类复制 DataGridColumnFloatingHeader 的源。我将使用标题创建视觉画笔的线更改为使用标题的第一个子项(未剪裁)创建视觉画笔的线删除偏移并使用 0,0..

0 投票
2 回答
1666 浏览

wpf - WPF 中的 RenderTransform 导致意外的布局更改

我正在尝试为视觉刷中的许多形状设置动画,但是当我执行旋转时,形状“脉冲”。我假设随着形状的旋转,边界框会强制布局通过。但是,由于我使用的是 RenderTransform,我没想到这会触发布局更改。

这段代码说明了这个问题:

这是一个更复杂的应用程序的简单示例,我使用视觉画笔来装饰在 3d 中操作的 2d 平面。在我尝试为画笔设置动画之前,这一切都很好。我尝试了几种不同的方法,但似乎总是遇到这个布局问题。

任何建议表示赞赏。

谢谢

0 投票
1 回答
286 浏览

c# - 与屏幕上的控件分离后,RichTextBox 文本在 VisualBrush 中消失

我有一个通过 VisualBrush 完成的缩略图预览。Preview 是一个 ItemsControl,它包含其他元素 RichTextBox。

当 ItemsControl 是应用程序可视化树的一部分时,预览和控件本身显示得很好,但是当我从应用程序可视化树中删除 ItemsControl(例如 canvas.Remove(itemsControl))时,RichTextBox 控件在预览中变得不可见(VisualBrush)而所有其他控件都照常显示。

我比较了 RichTextBox 与应用程序可视化树分离前后的属性。区别在于属性 IsLoaded(在 TRUE 之前,在 FALSE 之后)和 IsVisible(在 TRUE 之前,在 FALSE 之后)。但是其他元素(例如路径)具有相同的差异,并且仍然可以正确显示在预览中。

我无法理解 canvas.Remove(itemsControl) 如何隐藏 RichTextBox 但保留其他控件!任何想法将不胜感激!

0 投票
1 回答
2181 浏览

wpf - WPF VisualBrush 拉伸而不是平铺

我有一个 VisualBrush,我已将 TileMode 属性设置为 Tile。

但是,它不会平铺 - 它会伸展。有人可以帮忙吗?

谢谢

0 投票
1 回答
1491 浏览

c# - OnRender() 方法中的 DrawGeometry()

我有一个覆盖 OnRender-Method 的 UserControl,如下所示:

我的用户控件.cs:

上面使用的 UserControl 看起来像这样(在 xaml 中定义,没有额外的代码隐藏代码):

现在,如果我使用 MyUserControl,我会得到以下输出:

使用 MyUserControl 创建的输出示例

我现在的问题是,如果有一种方法可以在 OnRender() 方法中使用 UserControl1,而不需要在 UserControl1-Rectangle 周围设置透明边框。

提前致谢, rhe1980

0 投票
1 回答
1686 浏览

c# - 用 Viewbox 模糊背景

我正在构建 AERO 玻璃给你的类似效果,一个模糊的窗户。我很快意识到这在 WPF 中并不容易,但我设法让它几乎完全工作。当涉及 Viewbox 时,我只是卡住了。

所以我所做的是:我创建了一个矩形,制作了一个可视画笔来获取给定背景元素的一部分,将视图框转换为恰好占据矩形重叠的图像空间,并将其用作矩形的填充。

ElementName 网格指的是我的矩形和我的图像的共同父级。我不能让它们成为祖先,否则会干扰模糊效果。所以我把它们放在一个网格中。

最后一部分是多值转换器,它为 VisualBrush Viewbox 进行实际计算。

所以这是重现我的以下问题所必需的。如果您想测试代码,您可以轻松地将其放入一个简单的 wpf 应用程序中。

如果您对此进行测试,您会发现它运行良好。如果我们将矩形放置在 Viewbox 和具有固定大小的网格中(这模仿了我的实际问题),现在就会出现问题。

所以我猜测视图框的缩放是在布局之后应用的,因此在我的 TransformTo 调用中不会被识别。但是我已经尝试在我的转换中使用 Viewbox 的实际缩放,但没有运气。只要 Viewbox 在那里,我就无法让它工作,所以我希望任何人都知道可能出了什么问题,或者甚至可以为我指出一个更简单的解决方案。我希望该代码稍后转换为自定义控件,以便轻松重用它,因此我更喜欢不太依赖任何特殊条件的方法。

0 投票
1 回答
433 浏览

c# - 使用 Canvas 作为视觉元素的 VisuaBrush 缩放不正确

几天来,我一直在与这个问题作斗争,并且在解决它或在网络上找到任何支持的运气为零。基本上,我正在尝试创建一个以画布作为视觉元素的 VisualBrush。我希望能够在此画布上绘制几条线,并最终将其映射到 3D 表面(形成一个矩形的 2 个平行三角形)。我已经设置了纹理坐标,并且可以通过简单地使用 ImageBrush 或类似的东西来确认一切正常。我遇到的问题是画布拒绝保持其大小,并且根据其中的内容不断缩放。例如,如果画布是 100x100 并且我在其中有一条从 (0, 0) 到 (50, 50) 的线,画布将被缩放,使得只有内部内容的 50x50 部分被映射到纹理坐标和 3D 表面。我已经尝试了许多 Viewport/Viewbox/StretchMode/Alignment/etc 的组合,但找不到任何可以阻止这种情况发生的东西。我正在设置画布的 Width 和 Height 属性,所以我看不出为什么它在 VisualBrush 中的表现与我只是将它添加到网格或其他一些布局容器中的表现不同。

这里有一些代码可以帮助说明问题。

我引用的一个函数是

我无法让画布保持其设定的 100x100 大小,除非子内容一直到这些极端。出于我的目的,线坐标可以在画布中的任何位置,无论内容如何,​​我都需要让它保持其所需的形状。

任何建议将不胜感激!

0 投票
2 回答
2534 浏览

c# - 如何让 RenderTargetBitmap 和 VisualBrush 一起玩得很好?

我的要求:

  • 处理自定义图像逻辑的持久性UserControl,例如地图或绘图
  • 一组容器,用于在缩放或平移移动期间对图像进行缓存
  • VisualBrushUserControl我可以添加到容器中以与效果一起使用的副本

我目前使用 RenderTargetBitmap 实现图像缓存,但这似乎与我正在使用的VisualBrush-covered对象有问题。Rectangle

我的问题:我可以在此代码中添加/更改什么以使VisualBrush对象在使用后正确呈现RenderTargetBitmap?是什么奇怪的事情RenderTargetBitmap使人VisualBrush看不见?

如果没有大量代码,我无法重现这个问题。

在我的 xaml 文件中,我有:

和 .xaml.cs:

关于代码的一些帮助说明:

  • xaml_contentContainer用于HardCopy()将当前图像复制到图像缓存中,_back.
  • SoftCopy返回一个与过去一模一样的 FrameworkElement,但没有任何变换、效果或视觉父级。这个非常重要。
  • BuildImage模拟在初始图像以某种方式转换后构建要粘贴到缓存上的新图像。

如果您构建并运行SoftCopy()从 中删除 的应用程序_body.Children.Add(SoftCopy(Control));,您会看到我想要获得的效果:新元素粘贴在旧元素上方,而旧元素似乎保留了它的变换。

var rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32);或者,如果您从中删除该行HardCopy,缓存功能将被破坏,但 SoftCopy 会正确显示。

但是,如果您按原样运行应用程序,您会注意到新的 BlueRectangle(通过 VisualBrush 呈现)根本不会显示,直到您再次点击“新建”按钮,将图像推送到缓存,并且仍然没有向您显示新创建的图像。

0 投票
1 回答
354 浏览

c# - 创建一个由左、中、右图像组成的画笔,其中中间图像平铺

我需要在 WPF 中创建一个画笔,用作面板的背景。画笔具有固定高度但可变宽度。中间图像需要平铺以填充空间,而左右图像是固定的。我尝试使用 VisualBrush 和带有图像的网格,但它不能正确对齐/缩放。这是一个适用于固定宽度的画笔。我如何使它工作,以便它为可变宽度的面板平铺中间图像?

0 投票
1 回答
283 浏览

wpf - 移动时 VisualBrush for Image 出现 WPF 问题

我有图像,当我将对象从一个点移动到另一个点时,我已经为图像创建了视觉画笔。但我在视觉画笔上看不到图像。如果你看到我的矩形,它应该显示图像。

见图片:http ://social.msdn.microsoft.com/Forums/en-US/wpf/thread/e8833983-3d73-45e1-8af1-3bc27846441d

这是代码:

请帮助我

谢谢