سؤال

وأنا أحاول أن تحديث كائن صورة (_browserScreenshot أدناه) في XAML عن طريق تغيير الصورة المصدر في كل مرة يحدد حدث المصدر يحتاج إلى تحديث. الآن لدي هذا:

public BitmapSource GetScreen()
{
    Bitmap bitmap = new Bitmap(app.Browser.ClientRectangle.Width, app.Browser.ClientRectangle.Height);
    app.Browser.DrawToBitmap(bitmap, app.Browser.Bounds);

    BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());

    bitmapSource.Freeze();

    bitmap.Dispose();
    bitmap = null;
    return bitmapSource;
}

وبعد ذلك لدي معالج الحدث كما هو مبين:

app.BitmapSource.Changed += new EventHandler(BitmapSource_Changed);

void BitmapSource_Changed(object sender, EventArgs e)
{
    Window1._browserScreenshot.Source = app.GetScreen();
}

والآن كلما يطلق هذا الحدث لقطة الجديدة المتخذة ومصدر الصورة (وتسمى _browserScreenshot هنا) يجب أن يتم تحديث السيطرة. وأظل الحصول على خطأ حول تغيير بربري IsFrozen، ولكن أنا لا يمكن معرفة كيفية تغيير هذا صحيح ويكون هذا العمل بالطريقة التي كنت ترغب فيها. شكرا مقدما الجميع.

هل كانت مفيدة؟

المحلول

في كل يكيليهود لك <م> تريد إلى تجميد الكائن. والمشكلة التي تواجهها هي أنك تريد إنشاء BitmapSource جديد تماما في كل مرة، والسماح للتخلص جمع القمامة من الصورة القديمة.

نصائح أخرى

وتحول السطر التالي إلى أن تكون مشكلتي:

وbitmapSource.Freeze ()؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top