Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Scrolling canvas


Автор: fromrus 16.10.2009, 14:42
есть border  в котором сидит канвас,на котором что-то нарисовано.При увеличении канвы(ScaleTransform) она естесственно вылезает за границы border,как сделать,чтоб холст не вылазил при увеличении,а оставался в пределах "границы",причем его можно было бы прокручивать?

Добавлено через 5 минут и 58 секунд
еще вопрос:как затемнить background canvas'a(по умолчанию он прозрачный)?

Автор: netcray 16.10.2009, 15:06
Сам не пробовал, может быть поможет установка свойства ClipToBounds = "True", и соответственно, использование ScrollViewer'a для скроллинга.

по поводу background: установка свойства Background = [цвет] вас устраивает, или нужно что-то другое?

Автор: math64 17.10.2009, 11:57
Код

<Slider Name="Scale" Width="100" Value="1" Minimum="0.1" Maximum="10"/>
...
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
    <Border Background="AliceBlue">
        <Border.LayoutTransform>
            <ScaleTransform
                ScaleX="{Binding ElementName=Scale, Path=Value}"
                ScaleY="{Binding ElementName=Scale, Path=Value}"/>
            </Border.LayoutTransform>
        <Canvas Width="100" Height="100">
        </Canvas>
    </Border>
</ScrollViewer>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)