我在WPF项目中将Canvas定义为1000 x 3000px。
现在我使用Clip方法从点(0,1000)到(1000,2000)。 它将在画布的中间。 现在我想在ScrollViewer中显示它,但是有一个问题 - 我在剪切部分之前和之后有很多空间。如何将剪裁的画布对齐到顶部?
更具体:画布包含3页(1000x1000px),现在我想剪辑该中间页并对其进行操作。但在我的项目中,我想在顶部的op scrollviewer中显示一个页面。剪辑后,我得到正确的画布部分,但前后有空格。
怎么做?也许我需要使用另一种方法而不是Clip?
或者别的什么?例如,在每1000px之后拆分该画布..比如单词:)
答案 0 :(得分: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>