استخدام StackPanel ك ContentControl (WPF)
-
06-09-2019 - |
سؤال
لذلك لدي STACKPANEL الذي أستخدمه كحلقة قضائية. لدي مكان حيث أريد أن يتم إنشاء أزرار بناء على البيانات التي أرملها، وهذا يعمل بشكل جيد، لكنني أرغب في وضع الأزرار أفقيا، وليس رأسيا كما يحدث حاليا. إليك لقطة شاشة:
وهنا رمز من وصف الرصيد الخاص بي:
<StackPanel Name="wpReleaseButtons" Orientation="Horizontal" Grid.Row="2">
<ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Tag="{Binding}" Padding="3">
<TextBlock Text="{Binding Path=DisplayValue}" />
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
لست متأكدا ما أفعله خطأ هنا. ان اي معلومات موضع تقدير كبير. شكرا!
المحلول
أود أن أقول أنها تبدو وكأنها ItemsControl
هو ما يعرض الأزرار عموديا. إذا كنت تريد الأزرار في ItemsControl
أن تكون أفقيا، فأنت بحاجة إلى StackPanel
أن تكون في ItemsControl
ItemsPanelTemplate
, ، ليس في الاتجاه والطريقة الأخرى مثل ما لديك في الكود الخاص بك:
<ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Tag="{Binding}" Padding="3">
<TextBlock Text="{Binding Path=DisplayValue}" />
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
قد أكون مخطئا قليلا على ItemsControl.ItemsPanel
بت لأنني لم أحصل على أي بيانات لاختبارها مع ...
يحرر: بالإضافة إلى المرجع BEA، هناك بعض الأشياء الجيدة من قبل الدكتور WPF..
نصائح أخرى
لا أستطيع رؤية صورتك (تم حظرها بواسطة جدار الحماية الخاص بشركتي)، ولكن هنا أذهب إلى أي حال ...
من المحتمل أن يعمل الاتجاه الخاص بك = "الأفقي" "كما ينبغي: أنه يحتوي فقط على عنصر طفل واحد، وهي عبارة عن induescontrol. بدلا من ذلك، حاول إجراء عنصر تحكم للحصول على InditureControl الخاص بك، حيث يحتوي التحكم في التحكم في STACKPANEL بتوجيه الاتجاه = "أفقي".
أتمنى أن يساعدك هذا!
يحرر:
مرة أخرى، يأتي BEA من خلال إجابة / مثال!