WPF. Как показать только часть большого холста? - PullRequest
7 голосов
/ 24 августа 2009

Допустим, у меня есть холст размером 1000x1000. Можно ли отобразить только часть 100x100 в Viewbox (или прямоугольнике)?

Любая помощь приветствуется .....

1 Ответ

6 голосов
/ 24 августа 2009

Если вы работаете с кистями, вы можете взглянуть на Viewbox и Viewport в WPF

Редактировать: Я только что понял, что Viewbox и Viewport используются для кистей Это не совсем подходит в вашей ситуации. Я посмотрел его и думаю, вам понравится свойство Clip в UIElement.

Поскольку Canvas также является UIElement, вы можете использовать свойство Clip для имитации области просмотра на вашем Canvas.

Нажмите здесь для просмотра нескольких простых типов геометрии

Думаю, вам достаточно RectangleGeometry

<Canvas>
    <Canvas.Clip>
        <RectangleGeometry Rect="50,50,25,25" />
    </Canvas.Clip>
</Canvas>

Редактировать # 2:

Хе-хе, хорошо .. если вы хотите, чтобы отображался ваш общий Canvas, только поменьше, вы должны взглянуть и LayoutTransform . Затем используйте ScaleTranform , чтобы изменить размер вашего холста;).

<Canvas>
    <Canvas.LayoutTransform>
        <ScaleTransform CenterX="0" CenterY="0" ScaleX="0.5" ScaleY="0.5" />
    </Canvas.LayoutTransform>
</Canvas>

Изменяйте параметры, пока не получите желаемый эффект;)

...