サイズが200x275の画像(ローカルドライブ上)があり、次のコードを使用してデータグリッドの1行に画像を入力しています。
XAML:DataGrid.Columns
<DataGridTemplateColumn Header="IMG" Width="SizeToCells">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Width="200" Height="275" Margin="0,0,0,-100" Source="{Binding Path=IMG}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
私のxaml.csファイルにはIMG
、タイプのプロパティとしてBitmapImage
(uriをBitmapImageとして格納します)、CollectionViewSourceを使用して、それらの画像の列を含むリストへの変更で更新します。
それらを表示することは問題ありませんが、プレビューのようなものとして各画像のセクションを表示したいだけです(同じ幅200ピクセル、上から10ピクセル、高さ50ピクセルのみ-後で小さいときに完全な画像を表示しますプレビューをクリックします)。
上記のコードから、マージン値(-100から下)を変更しようとしたことがわかります。これはちょっと機能しますが、リストの最後の画像が完全に表示され、リストの下部を超えて拡張されます。
上から10pxをトリミングしてから、画像を縮小せずに高さを50pxに設定するより良い方法はありますか?
私がそれを行うことを考えることができる唯一の方法は、ビットマップ画像から新しいビットマップを作成することですが、それは何百もの画像では本当に非効率的であると確信しています。
ClipToBounds = trueを使用して画像コントロールをグリッドでラップしてみます。それはそれを修正する必要があります。グリッドがアイテム(高さ50px)に合わせてサイズ設定され、画像から自動サイズ変更されていないことを確認してください。そうしないと、クリッピングが期待どおりに機能しません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加