私はWindowsストアアプリを作成しており、ページ上でScrollViewer内に大きな画像を配置して、ユーザーがタッチジェスチャを使用して画像をパンおよびズームできるようにしています。これまでのところ、1 つのことを除いて、とても良いです。ZoomFactorに関係なく、またはユーザーがズームした量に関係なく、画像の最大半分が画面から外れるようにユーザーが「オーバーパン」できるように、パン用の「バッファー」があるように微調整したいと思いますインまたはアウト。
私の質問は、これを実装するにはどうすればよいですか? ある人は、画像の上、左、下、右に透明な uielement を埋め込むことを提案しましたが、静的サイズの挿入された uielement が「画面外の画像の最大半分」の要件を達成できるとは思いません。
何か案は?よろしくお願いいたします。
編集: リクエストごとにコードを追加
<Grid x:Name="LayoutRoot" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<ScrollViewer x:Name="ImageViewer" Background="White" ZoomMode="Enabled"
IsVerticalRailEnabled="False" IsHorizontalRailEnabled="False"
VerticalScrollMode="Enabled" HorizontalScrollMode="Enabled"
VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden"
MinZoomFactor=".22" MaxZoomFactor="2"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
<Image x:Name="map" Source="map.png" ImageOpened="map_Loaded_1"/>
</ScrollViewer>
</Grid>
そして、これはイベントのコードビハインドです
const float _defaultZoomFactor = 0.23F;
private void map_Loaded_1(object sender, RoutedEventArgs e)
{
ImageViewer.ZoomToFactor(_defaultZoomFactor);
}