0

我是银光的新手,想从专业人士那里了解更多。让我告诉你我想要做什么。我喜欢摄影,我的目标是创建一个网站,允许用户查看他们的图像并能够旋转、缩放、裁剪、特殊效果等。我开发了一个允许用户订购图片的网站,但现在我想要开始进行实际的图片/图像处理。所以为了测试我放了一个画布和一个矩形(带有图像)。放置了一个滑块,并能够将滑块链接到矩形。当我增加滑块时,图像会变大。但我有点希望随着图像变大它不会超出画布的边界。我认为这就是成为画布的孩子的意思。我弄错了吗?如果是这样,您如何建议我这样做?请记住,我对此很陌生,并且可能会对此非常错误。谢谢!

4

1 回答 1

1

你是对的。在 Silverlight(如 WPF、WinForms 等)中,gui 元素形成了元素的层次结构,其中控件可以充当父级或子级。

矩形超出其容器边界的原因在于控件对齐的方式。这取决于您要将孩子放入哪种容器中。

例如,在画布中,您可以使用绝对测量值(左、上、高、宽)定位子级。在像 StackPanel 这样的自组织容器中,您可以选择水平对齐方式(Left、HCenter、HStretch、Right)或垂直对齐方式(Top、VCenter、VStretch、Bottom),当您将其放置在父级中时,这将确定子级的行为。此外,您可以指定孩子的尺寸(宽度、高度)和一个可选的边距,该边距确定孩子的上、右、下和左边界与其封闭父级之间的间隙。

但是,无论您选择什么容器,它都是固有的,您可以让其子代超出其边界,例如,边距为负数或大于容器边界,或者只是由一个尺寸大于其容器的子代,如您所描述的情况用你的矩形。

在您的情况下,我会考虑使用剪辑的想法。剪辑只是意味着

(1) 定义一个几何区域(在 Silverlight 和 WPF 中它是一个 Path 对象),它位于某些图形上下文(您的 ui 或控件的某些部分等)之上。

(2) 位于该剪切区域边界内的内容仍然可见,而其他所有内容均不可见。

因此,您可以将剪辑区域视为屏幕上用于查看的窗口。

当您使用 Microsoft Blend 时,这很容易实现:

(1) 只需使用几何形状,如矩形、圆形或自定义路径。

(2) 把它放在你的 UI 上的某个地方

(3) 右键单击​​形状,选择“路径”,然后选择“制作剪切路径”

(4) 和voulà,您刚刚定义了一个可以修改的剪切区域,因为您习惯于修改控件。

希望这能让您了解如何处理您的问题。干杯。

于 2012-06-20T17:19:33.937 回答