WPF 剪切超出网格的控件
WPF cut controls that goes outside the grid
我正在学习 C# 和 WPF。我需要使用 Viewport3DVisual3D
控件在 3D 立方体(立方体在 Viewport3D
中定义)的面上放置一个带有一些 Image
的表格。
我将 Viewport3DVisual3D
的 Visual
元素定义为 Grid
。我定义的网格尺寸等于立方体表面的尺寸。我将图像添加为网格的子项:
如何将图像定位到网格上所需的 (x,y) 位置?
我尝试使用 Image
的 Margin
属性,例如:
Image im = new Image();
im.Source = new BitmapImage(new Uri("panotec.png"));
im.Width = 0.5;
im.Margin = new Thickness(-6, -0.5, 0, 0);
但是当图像从网格维度定义的区域中出来时,整个网格被压缩以适合立方体的表面。如图所示:
我该如何预防?我希望外面的控件部分只是被裁剪。可能吗?
提前致谢。
答案很简单:
myGrid.ClipToBounds = true;
也从 Grid
移动到 Canvas
以更好地放置图像:
Canvas myCanvas = new Canvas();
Image im = new Image(...);
Canvas.SetTop(im, top);
Canvas.SetLeft(im, left);
myCanvas.Children.Add(im);
我正在学习 C# 和 WPF。我需要使用 Viewport3DVisual3D
控件在 3D 立方体(立方体在 Viewport3D
中定义)的面上放置一个带有一些 Image
的表格。
我将 Viewport3DVisual3D
的 Visual
元素定义为 Grid
。我定义的网格尺寸等于立方体表面的尺寸。我将图像添加为网格的子项:
如何将图像定位到网格上所需的 (x,y) 位置?
我尝试使用 Image
的 Margin
属性,例如:
Image im = new Image();
im.Source = new BitmapImage(new Uri("panotec.png"));
im.Width = 0.5;
im.Margin = new Thickness(-6, -0.5, 0, 0);
但是当图像从网格维度定义的区域中出来时,整个网格被压缩以适合立方体的表面。如图所示:
我该如何预防?我希望外面的控件部分只是被裁剪。可能吗?
提前致谢。
答案很简单:
myGrid.ClipToBounds = true;
也从 Grid
移动到 Canvas
以更好地放置图像:
Canvas myCanvas = new Canvas();
Image im = new Image(...);
Canvas.SetTop(im, top);
Canvas.SetLeft(im, left);
myCanvas.Children.Add(im);