0

1000 x 3000px に定義された WPF プロジェクトのキャンバスがあります。

現在、ポイント (0,1000) から (1000, 2000) までの Clip メソッドを使用しています。そのキャンバスの真ん中になります。ScrollViewer で表示したいのですが、問題があります。クリップされた部分の前後に多くのスペースがあります。そのクリップされたキャンバスを上に揃えるには?

より具体的には、キャンバスには 3 ページ (1000x1000px) が含まれているため、その中間ページをクリップして操作したいと考えています。しかし、私のプロジェクトでは、スクロールビューアーの上部に 1 ページを表示したいと考えています。クリッピング後、キャンバスの正しい部分が得られますが、前後にスペースがあります。

どうやってするの?たぶん、Clip の代わりに別の方法を使用する必要がありますか?

それとも何か他のものですか?たとえば、1000pxごとにそのキャンバスを分割するには..単語のように:)

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 に答える