因此,一方面,我有一個影像應該自動調整為我管理的行大小,只需將行高度設為 1*
<Grid.RowDefinitions>
<RowDefinition Name="row1" Height="Auto"></RowDefinition>
<RowDefinition Name="row2" Height="*"></RowDefinition>
<RowDefinition Name="row3" MinHeight="200" Height="*"></RowDefinition>
</Grid.RowDefinitions>
...
<Image x:Name="WideScreenImage" Grid.Column="1" Grid.Row="1" StretchDirection="DownOnly" Margin="5,5,5,4">
<Image.Source>
<BitmapImage UriSource=""></BitmapImage>
</Image.Source>
</Image>
在此處輸入影像描述
另一方面,我有一個縮放腳本,它需要一個 ScrollViewer 在放大后導航,這也可以。
<ScrollViewer Name="scrollViewer" Grid.Column="1" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible">
<Grid Name="grid" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Grid.LayoutTransform>
<TransformGroup>
<ScaleTransform x:Name="scaleTransform"/>
</TransformGroup>
</Grid.LayoutTransform>
<Viewbox Grid.Column="0" Grid.Row="0">
<Image Source="Z:\tmp\img\1\d68epc1-022b407d-89e4-4128-a32d-17286dae21b4.png" StretchDirection="DownOnly"></Image>
</Viewbox>
</Grid>
</ScrollViewer>
我現在的問題是 ScrollViewer 占據了 100% 的行,但是因為影像比 ScrollViewer 大,所以 ScrollViewer 完成了他的作業并以原始大小顯示影像,但使用滾動條查看它。
在此處輸入影像描述
所以基本上我需要一種將影像調整為行大小的方法,但僅在網格太他的 LayoutTransform 超過滾動查看器的大小時才顯示滾動條。
uj5u.com熱心網友回復:
因此,我在此期間找到了解決方案。我對它并不完全滿意,但它現在必須作業。
基本上,我創建了一個 invis 矩形,將其放入行中,以便它像 ScrollViwer 中的影像一樣自動調整大小。
<Rectangle x:Name="recPosition" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Visibility="Hidden"/>
<ScrollViewer Name="scrollViewer" Grid.Column="1" Grid.Row="1" VerticalScrollBarVisibility="Visible" Visibility="Collapsed" HorizontalScrollBarVisibility="Visible">
<Grid Name="grid" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Grid.LayoutTransform>
<TransformGroup>
<ScaleTransform x:Name="scaleTransform"/>
</TransformGroup>
</Grid.LayoutTransform>
<Viewbox>
<Image x:Name="WideScreenImage" StretchDirection="DownOnly" Margin="5,5,5,4">
<Image.Source>
<BitmapImage UriSource=""></BitmapImage>
</Image.Source>
</Image>
</Viewbox>
</Grid>
</ScrollViewer>
然后我使用大小更改事件將影像大小更新為矩形。
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
WideScreenImage.Height = recPosition.ActualHeight;
WideScreenImage.Width = recPosition.ActualWidth;
}
但我很確定還有其他表現更好的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494729.html
