2
私は一束の画像を表示するフォームを持っています。私はこのイメージをペイントのような別の実行ファイルで変更し、終了時にイメージをリフレッシュすることができるようにしたいと考えています。WPFのImageタグから画像を変更する
イメージをペイントに保存しようとすると、イメージが何らかの形でイメージにリンクされているためにイメージが保護されていることがわかります。
この作業を行う方法はありますか?どのように問題を回避するための任意のアイデア?
ありがとうございました。
編集:画像を監視するための
MemoryStream ms = new MemoryStream();
BitmapImage bi = new BitmapImage();
byte[] bytArray = File.ReadAllBytes(@"test.jpg");
ms.Write(bytArray, 0, bytArray.Length);
ms.Position = 0;
bi.BeginInit();
bi.StreamSource = ms;
bi.EndInit();
image.Source = bi;
:ここstrucure(heaviliy単純化された)、私はあなたがファイルを読み込み、MemoryStream
オブジェクトに書き換えることができます
<ListView Style="{StaticResource BaseListView}" x:Name="LstMoulures" Grid.Column="0" Background="#00000000" SelectionMode="Single" IsTextSearchEnabled="False" ScrollViewer.VerticalScrollBarVisibility="Auto">
<ListView.ItemTemplate>
<DataTemplate>
<Border BorderBrush="White" Margin="1,1,1,1" BorderThickness="2,2,2,2" CornerRadius="4">
<StackPanel Orientation="Horizontal" Margin="5,0,0,5" Height="200">
<Image x:Name="ImgPicture" Width="220" Height="195" Margin="2,5,2,2" GotFocus="ImgPicture_GotFocus" MouseLeftButtonDown="ImgPicture_MouseLeftButtonDown" MouseEnter="ImgPicture_MouseEnter" MouseLeave="ImgPicture_MouseLeave">
<Image.Source>
<BitmapImage UriSource="{Binding DessinSource}" CacheOption="OnLoad" />
</Image.Source>
</Image>
</StackPanel>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
また
@navid:何ですか'CacheOption'の意味ですか?あなたの答えは実際には主な質問に答えません – Sung
look [here](http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapcacheoption.aspx) –
あなたが 'CacheOption = "OnLoad" 'イメージデータのすべての要求はメモリストアから満たされます。 –