Đây là mã tôi đang sử dụng cho hình ảnh ràng buộc trong XAMLSystem.OutOfMemoryException trong khi đọc và ràng buộc hình ảnh từ lưu trữ riêng biệt
<Border toolkit:TiltEffect.IsTiltEnabled="true" Height="350" Width="400" Grid.ColumnSpan="3">
<Grid Height="350" Width="400" Margin="70,0,70,0" x:Name="Container1">
<Grid.Background>
<ImageBrush ImageSource="{Binding ImageCollection[0]}" Stretch="Uniform" AlignmentX="Left" AlignmentY="Center"/>
</Grid.Background>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Tap">
<i:InvokeCommandAction Command="{Binding ImageTapCommand}" CommandParameter="CONTAINER0"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Grid>
</Border>
Tương tự như vậy Tôi đang sử dụng 4 biên giới để hiển thị hình ảnh gần đây của tôi.
Trong ViewModel của tôi, tôi đang sử dụng phương pháp dưới đây để đọc hình ảnh từ bộ nhớ bị cô lập.
public Stream GetFileStream(string filename, ImageLocation location)
{
try
{
lock (SyncLock)
{
if (location == ImageLocation.RecentImage)
{
filename = Constants.IsoRecentImage + @"\" + filename;
}
using (var iSf = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!iSf.FileExists(filename)) return null;
var fs = iSf.OpenFile(filename, FileMode.Open, FileAccess.Read);
return fs;
}
}
}
catch (Exception ex)
{
return null;
}
}
Và sau khi nhận được dòng tôi sẽ sử dụng phương pháp dưới đây viết bốn xây dựng WritableBitmap
cho UI ràng buộc
private WriteableBitmap BuildImage(Stream imageStream)
{
using (imageStream)
{
var image = new BitmapImage();
image.SetSource(imageStream);
return new WriteableBitmap(image);
}
}
Trong trường hợp này vấn đề của tôi là sau khi điều hướng đến và đi từ trang web của tôi cho 2-3 lần. Ứng dụng gặp sự cố trên phương thức BuildImage() nơi tôi đang sử dụng "image.SetSource (imageStream);" phương pháp. Tôi đã thử nhiều giải pháp thay thế nhưng thất bại. Ngoại lệ tôi nhận được là "System.OutOfMemoryException"
Tôi đã thử điều khiển Hình ảnh thay vì cọ vẽ Hình ảnh.
Tôi đã thử Bitmap thay vì WritableBitmap vv nhưng kết quả là giống nhau.
Tỷ lệ lỗi ứng dụng sẽ giảm nếu tôi sử dụng hình ảnh nhỏ. Nhưng tỷ lệ tai nạn là cao với những hình ảnh được chụp qua máy ảnh.
Tôi đang cố gắng giải quyết vấn đề này trong một tuần qua, nhưng không tìm thấy giải pháp thay thế nào để khắc phục sự cố.
Tôi tìm thấy một link rằng cuộc đàm phán về vấn đề tương tự nhưng đã không nhận được nhiều để giải quyết vấn đề này
Tôi đã thử kết quả này nhưng cùng một kết quả. – StezPet