تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] سؤال حول عرض صورة من قاعدة البيانات
#1
Question 
السلام عليكم ورحمة الله وبركاته
غلبتكم معي بالأسئلة ولكن إن شاء الله تكون الفائدة للجميع
قمت بإضافة DataGrid وجربت عليه كل عمليات الإصافة والتحديث والبحث والحذف
والحمد لله كله تمام 
ولكن هنالك جزئية تتعلق بالتعامل مع الصور واجهت فيها عقبة
طبعاً قمت بإضافة صورة داخل DataGrid عن طريق Xaml

لكن المشكلة هي :
عند الضغط على بند في DataGrid يعرض لي بالأسفل محتويات البند
مثلاً الرقم والآية والشرح وهذه تعمل تمام
ولكن أريد أن تظهر في أداة الـ Image التي أضفتها بالأسفل الصورة الموجودة في ذلك البند التابع للهيدر (صورة)
كما سترون بالمرفقات

هنالك مشكلة أخرى :في زر تحديث : سترون أنني أقوم من خلاله بتعديل الصورة وتغييرها
ولكن سابقاً كنت أضيف كود يقوم بتصغير حجم الصورة فأجعلها مثلاً 200 * 150
أي العرض 200 والارتفاع 150
هذا الكود حاولت تطبيقه في WPF فلم ينفع
فهل من الممكن المساعدة بإضافة كود يقوم بتحجيم الصورة حسب ما أريد قبل أن يحفظها في قاعدة البيانات ؟

وجزاكم الله عني كل خير


الملفات المرفقة
.rar   ImageData.rar (الحجم : 219.68 ك ب / التحميلات : 25)
فاعلم أنه لا إله إلا الله
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم
الحمد لله وجدت حلاً للمشكلة الثانية المتعلقة بتحجيم الصورة
والمثال بالمرفقات وضعته لكم مع الرشح لتعم الفائدة


بقيت المشكلة الأولى وإن شاء الله نجد لهاحلاً بإذن الله تعالى


الملفات المرفقة
.rar   Resize image.rar (الحجم : 131.6 ك ب / التحميلات : 18)
فاعلم أنه لا إله إلا الله
الرد }}}}
تم الشكر بواسطة:
#3
دائما للوصول الى الDataTemplate من اي عنصر عليك اولا بإيجاد الكائن ContentPresenter .

لكن اولا يجب ان تعين Name للDataGridTemplate وايضا للImage الذي في داخل ال DataTemplate ليصبح :



إقتباس :<DataGridTemplateColumn x:Name="TemplateHeader" Header="صورة" Width="50">
                   <DataGridTemplateColumn.CellTemplate>
                       <DataTemplate>
                           <Image Height="25" x:Name="ImageControl" Width="50" Source="{Binding Photo}" />
                       </DataTemplate>
                   </DataGridTemplateColumn.CellTemplate>
               </DataGridTemplateColumn>


الان نجيب الContentPrenster للخلية تبع الRow المحدد حاليا :


كود :
       Dim contentPresnter As ContentPresenter = TemplateHeader.GetCellContent(DataGridView1.SelectedItem)



بعدين نجيب الImage من خلال جلب العنصر باستعمال الدالة FindName (علما بانه توجد دوال كثيرة غيرها مثل FindVisualElement وغيرها) :


كود :
       Dim img As Image = DirectCast(contentPresnter.ContentTemplate.FindName("ImageControl", contentPresnter), Image)



في النهاية :


كود :
ImgPic.Source = img.Source



---


علما باني لم اجرب البرنامج لانه لايعمل عندي ، الخطة في كود ملأ الداتاسيت (adpater.Fiill(ds

بل لايظهر خطا انما يغلق البرنامج مباشرة ولا ادري مالذي يحصل .

المهم اخواني احب اقول ان امتحاناتي بدأت فأرجو المعذرة ساتوقف عن طرح الدروس حاليا ، ولكن سأظل ادخل بين الحين والاخر لرؤية جديدكم.


تحياتي
الرد }}}}
تم الشكر بواسطة: Sajad , hoob computer , السندبااد
#4
أجابك الأخ (الشاكي لله), جزاكم الله خيراً ...


السلام عليكم
الرد }}}}
تم الشكر بواسطة: السندبااد
#5
السلام عليكم ورحمة الله وبركاته
جزاك الله ووالديك الفردوس الأعلى أخي الشاكي لله
هذا ما أريده بالضبط ماشاء الله عليك تستحق لقب ملك WPF
نسأل الله تعالى لك التوفيق في امتحاناتك وأن يعيدك إلينا بخير وسلامة
والشكر للأخ أبو إبراهيم على اهتمامه

قمت بتعديل المثال وهو بالمرفقات لكي تعم الفائدة
المثال يسمح بإضافة صورة لقاعدة البيانات بعد أن يقوم بتحجيمها حسب اختيارك كما سترى في الكود
وكذلك أضفت زراً لحذف الصورة من قاعدة البيانات
وأضفت زراً لتصدير الصورة من أداة Image إلى أي مكان يختاره المستخدم

حياكم الله ولا تنسونا من دعاءكم

وأخيراً من أراد أن يستدعي صورة من قاعدة البيانات فليضف زراً للمثال الأخير وليضع فيه هذا الكود :
كود :
       da = New OleDbDataAdapter("SELECT photo FROM info WHERE Name ='" & Tb2.Text.Trim & "'", conn)
       da.Fill(ds, "info")

       Dim ImgSource() As Byte = DirectCast(ds.Tables("info").Rows(0)("Photo"), Byte())

       Dim stream As MemoryStream = New MemoryStream()
       stream.Write(ImgSource, 0, ImgSource.Length - 1)
       stream.Seek(0, SeekOrigin.Begin)
       Dim bitmap As New BitmapImage
       bitmap.BeginInit()
       bitmap.StreamSource = stream
       bitmap.EndInit()
       ImgPic.Source = bitmap


الملفات المرفقة
.rar   ImageData1.rar (الحجم : 547.46 ك ب / التحميلات : 28)
فاعلم أنه لا إله إلا الله
الرد }}}}
تم الشكر بواسطة: hoob computer


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  إدراج صورة في الجدول في التقرير السندبااد 8 416 11-08-16, 11:43 AM
آخر رد: السندبااد
  سؤال بخصوص الواجهة كرم ابوهشام 1 215 01-05-16, 06:39 PM
آخر رد: السندبااد
Question [سؤال] سؤال عن أداة شبيهة بالكومبوكس السندبااد 4 499 06-01-16, 06:08 PM
آخر رد: السندبااد
  حفظ عنصر في صورة Screenshot Element زكيري عبد العالي 0 334 14-01-15, 02:59 PM
آخر رد: زكيري عبد العالي
Question [سؤال] كيف يمكن إضافة صورة متحركة gif للبرنامج ؟ عبد الله 13 1,213 13-10-14, 11:59 AM
آخر رد: hoob computer
Question [سؤال] ما أفضل وأسهل وأبسط طريقة لربط برنامج دوت نت تقنية WPF بقاعدة البيانات ؟ السندبااد 3 1,345 06-09-14, 05:32 PM
آخر رد: الشاكي لله
  سؤال عن الـ Grid Itachi 1 739 02-06-13, 03:48 PM
آخر رد: smss
  WPF الأساسيات : ربط البيانات DataBinding في WPF Islam Ibrahim 1 1,726 17-09-12, 12:45 PM
آخر رد: Islam Ibrahim

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم