私はwpfで働いています。Image コントロールがある userControl があります。
image.source を介して、この userControl に BitmapImage を追加します。
次に、この userControl がキャンバスに追加されます。このキャンバスにアタッチされたコントロールには、4 つのコーナーのそれぞれをドラッグして userControl のサイズを変更できるように、装飾がアタッチされています。
私の問題は、ビットマップがuserControlでサイズ変更されないことです。
userControl のサイズが変更されたときにビットマップを再描画する簡単な方法はありますか?
ユーザー コントロールの XAML は次のとおりです。
<UserControl x:Name="cusImageControl" x:Class="StoryboardTool.CustomImage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" BorderThickness="0" MouseDown="cusImageControl_MouseDown">
<Image x:Name="image" >
<Image.ContextMenu>
<ContextMenu>
<MenuItem x:Name="ContextMenuBringForward" Header="BringForward" Click="ContextMenuBringForward_Click"/>
<MenuItem x:Name="ContextMenuSendBackward" Header="SendBackward" Click="ContextMenuSendBackward_Click"/>
</ContextMenu>
</Image.ContextMenu>
</Image>
</UserControl>
public void chooseImage()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Choose Image to Add";
if (ofd.ShowDialog() == true)
{
BitmapImage bImage = new BitmapImage();
bImage.BeginInit();
bImage.UriSource = new Uri(ofd.FileName);
bImage.EndInit();
image.Width = bImage.Width;
image.Height = bImage.Height;
image.Source = bImage;
//image.Stretch = Stretch.Fill;
}
}