我正在编写一个 WPF 应用程序,它显示最初居中的图像。用户可以放大/缩小和移动图像,使用ScaleTransform
和实现TranslateTransform
。这很好用。
问题是当图像明显大于窗口时,用户移动图像或缩小到足以使整个图像可见。最初隐藏的图像部分不会被渲染,而是仅绘制图像的原始可见部分。
基于其他一些 问题,如果我将图像放在 aCanvas
中,这将导致整个图像被渲染,并且在移动时它将被正确渲染。问题是我不希望我的图像位于 a 中Canvas
,因为这会阻止任何其他布局发生 -HorizontalAlignment
和VerticalAlignment
属性被忽略(因此图像不再居中),我需要实现一个选项来绘制尽可能大的图像以填充不再起作用的窗口的整个区域(将Stretch
属性设置为UniformToFill
不执行任何操作)。
目前,这两个转换都设置为RenderTransform
属性。如果我LayoutTransform
改为使用,则会绘制整个图像,但这也会阻止用户将图像的任何部分移出窗口边缘(这是我想要保留的行为)。
如何告诉 WPF 在不使用 aCanvas
或 a 的情况下始终渲染整个图像LayoutTransform
?