ليستفيو داخل ستاكبانيل داخل الشبكة لا مقياس
-
20-12-2019 - |
سؤال
في تطبيق ويندوز 8.1 (صافي 4.5) لدي (عبر اثنين من القوالب ، بسبب ملزمة) شبكة التي تحتوي على ستاكبانيل الذي يحتوي على ليستفيو.الشيء هو ، ليستفيو لا مقياس مع المساحة المتاحة ، بدلا من ذلك يظهر شريط التمرير.
<Grid DataContext="{Binding}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/> <!-- IF I set MinHeight here, it grows -->
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"/>
<ListView
Grid.Row="1"
Margin="10"
ItemsSource="{Binding ementas}"
ItemTemplate="{StaticResource temp1}"
SelectionMode="None"
IsItemClickEnabled="False"
IsSwipeEnabled="False">
</ListView>
</Grid>
قالب ل ليستفيو
<StackPanel Width="310" Margin="5,10,5,10" DataContext="{Binding}">
<TextBlock Text="{Binding data}" Style="{StaticResource TitleTextBlockStyle}"/>
<ListView SelectionMode="None"
IsItemClickEnabled="False"
ItemsSource="{Binding pratos}"
ItemTemplate="{StaticResource temp2}"
IsSwipeEnabled="False">
</ListView>
</StackPanel>
والقالب ل ليستفيو الثاني
<TextBlock Text="{Binding descricao}"
Margin="5"
Style="{StaticResource BodyTextBlockStyle}"
TextWrapping="WrapWholeWords"/>
لقطة شاشة:
أود ل ليستفيو مع شريط التمرير أن يكون حجم حجم لتناسب المحتوى ، والتمرير فقط إذا كان ينفد من مساحة الشاشة.
المحلول
هذه مشكلة شائعة للغاية...ال StackPanel
هل لا تغيير حجم محتوياته لتناسب عنصر التحكم الأصل مثل Grid
هل.الحل بسيط...لا تستخدم StackPanel
باستثناء أبسط من يصطفون بعض الضوابط الواجبات.بدلا من ذلك ، استخدم ملف Grid
والتي سوف تناسب تلقائيا كل المساحة التي توفرها الضوابط الأم.
لا تنتمي إلى StackOverflow