0

我将 WPF 项目中的 Canvas 定义为 1000 x 3000px。

现在我使用从点 (0,1000) 到 (1000, 2000) 的 Clip 方法。它将在画布的中间。现在我想在 ScrollViewer 中显示它,但有一个问题 - 在剪辑部分之前和之后我有很多空间。如何将剪裁的画布对齐到顶部?

更具体地说:画布包含 3 个页面(1000x1000px),现在我想剪辑那个中间页面并对其进行操作。但在我的项目中,我想在顶部操作滚动查看器中显示一页。剪裁后,我得到了画布的正确部分,但前后有空格。

怎么做?也许我需要使用另一种方法而不是剪辑?

或者也许是别的什么?例如,在每 1000px 之后分割该画布 .. 就像在 word 中一样 :)

4

1 回答 1

0

这是我想出的解决方案。你所要做的就是把我的画布换成你的。

<Window x:Class="StackOverflow.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:StackOverflow"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <local:AllNoneCheckboxConverter x:Key="converter"/>
        <local:ValuePointConverter x:Key="VPConverter"/>
    </Window.Resources>
    <Grid>
        <ScrollViewer VerticalScrollBarVisibility="Hidden"
                      HorizontalScrollBarVisibility="Visible"
                      Width="1000" Height="1000"
                      >
            <Canvas Width="3000" Height="1000">
                <Canvas.Background>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                        <GradientStop Color="Red" Offset="0.3"/>
                        <GradientStop Color="Blue" Offset="0.6"/>
                        <GradientStop Color="Black" Offset="1"/>
                    </LinearGradientBrush>
                </Canvas.Background>
            </Canvas>
        </ScrollViewer>
    </Grid>
</Window>
于 2013-04-05T12:32:24.563 回答