要使图像可缩放,我正在使用procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
try
if Column.FieldName = 'FIRST_NAME' then
DBGrid1.Canvas.Brush.Color := clGreen;
finally
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
包裹图像控件,如下所示:
ScrollViewer
我希望调整图片的大小以适应水平和垂直方向的页面,就像<Page ...>
<ScrollViewer ZoomMode="Enabled" HorizontalScrollMode="Auto" VerticalScrollMode="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" />
</ScrollViewer>
</Page>
控件的Stretch="Uniform"
行为一样:
但相反,它仅调整图像大小以适合水平方向,在垂直方向上剪切多余的图像:
我从this website开始,所以我将xaml更改为:
Image
虽然这在拉伸方面工作正常,但图像会在屏幕左侧对齐,放大/缩小时会发生奇怪的事情:
使用图像的<Page x:Name="Page"
... />
<ScrollViewer ZoomMode="Enabled" HorizontalScrollMode="Auto" VerticalScrollMode="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" Width="{Binding ActualWidth, ElementName=Page}" Height="{Binding ActualHeight, ElementName=Page}" />
</ScrollViewer>
</Page>
属性无效。
如何在最初将图像放入其容器内时使图像可缩放,就像任何照片查看器应用程序一样?
答案 0 :(得分:1)
这有效:
<Page x:Name="Page" ...>
<ScrollViewer ZoomMode="Enabled" MinZoomFactor="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Image Source="http://i.imgur.com/iseJWq1.jpg" MaxWidth="{Binding ActualWidth, ElementName=Page}" MaxHeight="{Binding ActualHeight, ElementName=Page}"/>
</ScrollViewer>
</Page>
......这正是文章建议完成的内容。