Silverlight 4: Поле списка не уменьшается, когда его объекты уменьшаются

от этого вопроса я выполнил развертку проблемы к полю списка, которое не изменяет размер, когда Объекты поля списка уменьшаются. Это изменяет размер соответственно, когда размер объектов растет, но это не уменьшается, когда размер объектов уменьшается.

Объекты могут расти/уменьшать, потому что объекты, содержащие текстовые поля, которые изменяют размер с входом.

Jeremiah предложил запустить новый вопрос с большего количества кода для показа, таким образом, здесь мы идем:

Наше злое поле списка является частью UserControl, который содержит StackPanel с Маркировать (HorizontalAlignment=Center), поле списка (HA=Left) и Кнопка (HA=Right). Объекты поля списка являются datalinked к ObservableCollection

Вы распознаете красивый BackgroundColors на ListBox и ListBoxItems. Я использовал их, чтобы смочь сказать, не уменьшаются ли Объекты или само Поле списка. Я узнал, что Объекты уменьшаются, но Поле списка не делает.

Хорошо, вот код моего UserControl:


  
    
  

  
    
      
    
  

  
    
      
    

    
    
      
        
          
          
          
          
          

Я понятия не имею, почему поле списка не уменьшается, когда размер уменьшения объектов, хотя я установил поле списка' размер на Автоматический и HorizontalAlignment к Левому

Заранее спасибо, Frank

5
задан Community 23 May 2017 в 12:31
поделиться

1 ответ

Ну ... у меня нет всего вашего кода. Но я упростил то, что у вас было выше, и это работает.

Надеюсь, это поможет вам каким-то образом разобраться в вашей проблеме. Еще раз, это может быть родительский элемент этого элемента управления, вызывающий проблемы. Это также может быть один из ваших стилей, который вы применяете. Попробуйте удалить ВСЕ из-под вашего контроля, чего не должно быть, а затем медленно добавьте это обратно, чтобы найти виновника.

Я создал новое приложение Silverlight, и это буквально единственное в нем. Список увеличивается и уменьшается, как и ожидалось.

XAML:

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"
    x:Class="Test.MainPage">

    <Grid x:Name="LayoutRoot">
        <StackPanel VerticalAlignment="Top" HorizontalAlignment="Left"> 
          <StackPanel.Background> 
            <SolidColorBrush Color="Black"/> 
          </StackPanel.Background> 

          <ListBox x:Name="ListBox" BorderBrush="{x:Null}" Margin="0" HorizontalContentAlignment="Left" FontSize="9.333" HorizontalAlignment="Left"> 
            <ListBox.Foreground> 
              <SolidColorBrush Color="Silver"/> 
            </ListBox.Foreground> 

            <!-- DataTemplate to display the content --> 
            <ListBox.ItemTemplate> 
              <DataTemplate> 
                <StackPanelOrientation="Horizontal" HorizontalAlignment="Left"> 
                  <TextBox FontSize="30" Text="{Binding}" />      
                </StackPanel> 
              </DataTemplate> 
            </ListBox.ItemTemplate> 

            <ListBox.ItemContainerStyle> 
              <Style TargetType="ListBoxItem"> 
                <Setter Property="HorizontalAlignment" Value="Left" /> 
                <Setter Property="Background" Value="Yellow" /> 
              </Style> 
            </ListBox.ItemContainerStyle> 

            <ListBox.Background> 
              <SolidColorBrush Color="Red" /> 
            </ListBox.Background>   

          </ListBox> 

            <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Height="30">
                <Button Content="Add" Click="Add_Click" Width="100"/>
                <Button Content="Remove" Click="Remove_Click"  Width="100"/> 
            </StackPanel>  
        </StackPanel>       
    </Grid>
</UserControl>

Скрытый код:

using System;
using System.Windows;
using System.Windows.Controls;

namespace Test
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            // Required to initialize variables
            InitializeComponent();

            Count = 8;
        }

        private int Count;

        private void Add_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            Count = Count * 8;

            ListBox.Items.Add("Hi Mom (" + Count.ToString() + ")");
        }

        private void Remove_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            ListBox.Items.RemoveAt(ListBox.Items.Count-1);
        }
    }
}
0
ответ дан 14 December 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: