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

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

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

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


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


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


الملفات المرفقة
.rar   Resize image.rar (الحجم : 131.6 ك ب / التحميلات : 56)
فاعلم أنه لا إله إلا الله
الرد }}}
تم الشكر بواسطة:
#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 ك ب / التحميلات : 81)
فاعلم أنه لا إله إلا الله
الرد }}}
تم الشكر بواسطة: hoob computer


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  WPF الأساسيات : ربط البيانات DataBinding في WPF Islam Ibrahim 2 5,904 23-07-18, 02:48 AM
آخر رد: farhat ali
  سؤال عن اسم اداه بتقنيه WPF hadeel 2 2,230 26-07-17, 11:40 PM
آخر رد: hadeel
  سؤال عن استخدام الداتا كرد في تقنية WPF hadeel 1 2,537 26-07-17, 07:53 PM
آخر رد: السندبااد
  [سؤال] استرجاع صورة kasber 0 1,759 06-06-17, 05:03 PM
آخر رد: kasber
  إدراج صورة في الجدول في التقرير السندبااد 8 3,963 11-08-16, 11:43 AM
آخر رد: السندبااد
  سؤال بخصوص الواجهة كرم ابوهشام 1 2,470 01-05-16, 06:39 PM
آخر رد: السندبااد
Question [سؤال] سؤال عن أداة شبيهة بالكومبوكس السندبااد 4 3,232 06-01-16, 06:08 PM
آخر رد: السندبااد
  حفظ عنصر في صورة Screenshot Element زكيري عبد العالي 0 1,859 14-01-15, 02:59 PM
آخر رد: زكيري عبد العالي
Question [سؤال] كيف يمكن إضافة صورة متحركة gif للبرنامج ؟ عبد الله 13 6,164 13-10-14, 11:59 AM
آخر رد: hoob computer
Question [سؤال] ما أفضل وأسهل وأبسط طريقة لربط برنامج دوت نت تقنية WPF بقاعدة البيانات ؟ السندبااد 3 5,330 06-09-14, 05:32 PM
آخر رد: الشاكي لله

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


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