برنامج الأغذية العالمي: تحريك ارتفاع ListView عندما يكون الارتفاع النهائي غير معروف

StackOverflow https://stackoverflow.com/questions/804852

  •  03-07-2019
  •  | 
  •  

سؤال

ولدي ListView الذي أن يعرف ببساطة شديدة في بلدي XAML مثل ذلك

<ListView Name="myListVew" MaxHeight="200" Visibility="Collapsed">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Line" Width="Auto" DisplayMemberBinding="{Binding Line}" />
            <GridViewColumn Header="Error" Width="Auto" DisplayMemberBinding="{Binding Error}" />
        </GridView>
    </ListView.View>
</ListView>

وعندما أريد أن ListView إلى أن تظهر، وأريد أن يديروا ارتفاع عرض قائمة من 0. المشكلة هي، لا أعرف الارتفاع النهائي من يكون ListView لأنه سيعتمد على عدد العناصر تظهر داخل ذلك. هناك على أية حال للقيام بذلك؟

هل كانت مفيدة؟

المحلول

ولا اكره لكم انه عند البحث لساعات عن حل، نشر سؤال في منتدى ومن ثم العثور على إجابة نفسك بعد 10 دقائق؟

وعلى أي حال، حصلت عليه العمل من خلال تطبيق على نطاق وتخطيط تحويل مثل ذلك

<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ErrorDisplay" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="1"/>
</DoubleAnimationUsingKeyFrames>

نصائح أخرى

وهذه ليست بالضبط نفس السيناريو لكنها قد تساعد شخص آخر.

وكان لي الحدود التي كانت على ارتفاع السيارات وأردت أن يديروا إلى ارتفاع معين.

وبدا الحدود بلدي مثل هذا:

<Border Name="ContainerBorder">
  <!-- Stuff... -->
</Border>

وأنا خلقت هذه القصة المصورة:

<Storyboard x:Key="EditIn">
  <DoubleAnimation Storyboard.TargetProperty="Height"
                   Storyboard.TargetName="ContainerBorder"
                   Name="BorderAnimation"
                   To="45"
                   Duration="0:0:0.8" />
</Storyboard>

وكان زر التي أدت الرسوم المتحركة بعض codebehind:

private void Edit_Click(object sender, RoutedEventArgs e) {
  Storyboard sb = (Storyboard)FindResource("EditIn");
  //Find the border animation
  DoubleAnimation da = (DoubleAnimation)sb.Children.Where(t => t.Name == "BorderAnimation").FirstOrDefault();
  if (da != null) { da.From = ContainerBorder.ActualHeight; }
  sb.Begin(this);
}

وهكذا، وأنا ببساطة وجدت الحدود وتعيين "من" ملكا للرسوم المتحركة لActualHeight وFrameworkElement ل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top