سيلفرلايت 2: أنا أريد أن عدد متغير من العناصر لتولي عرض ثابت

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

سؤال

ووstackpanel ليس تتعاون. لدينا عرض ثابت، وعدد متغير من العناصر لوضع خارج اليسار إلى اليمين داخله.

ولدينا عنصر تحكم العناصر التي يضع بها مع لجنة كومة:

<ItemsControl x:Name="testItems"
              HorizontalAlignment="Left"
              VerticalAlignment="Top">
    <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Stacktest:ItemControl />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

ولكن هذا لا حجم العناصر بشكل صحيح. هم دائما نفس الحجم، بغض النظر عن مقدار المساحة المتوفرة. إذا كان هناك عناصر كثيرة جدا يتم قطع قبالة على حق، بدلا من الحجم بحيث تناسب جميع في. أي فكرة عن كيفية تحقيق ذلك؟ فما استقاموا لكم فاستقيموا استخدام الشبكة إذا كان عدد العناصر مستمر، ولكنها ليست كذلك. انها عادة 1-4 البنود.

وسيكون من الرائع إذا كان ItemsPanelTemplate يمكن أن تكون الشبكة مع عدد متغير من الأعمدة. ولكن أنا لا أعرف إذا كان هذا (أو شيء مع نفس النتيجة) ممكن في ItemsPanelTemplate.

هل الجواب لكتابة فرعية خاصة من لوحة يخصص العرض يساوي الواردة العناصر؟

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

المحلول

وأعتقد أن ما تريده هو أن UniformGrid. يمكنك الإشارة إلى أن لديها صف واحد، وينبغي تخطيط جميع العناصر داخل لديها نفس العرض. قد لا يكون هذا بالضبط ما كنت أبحث عنه، ولكن هذا هو أقرب ما يمكن أن تفكر به.

ولست متأكدا إذا توفر مجموعة أدوات سيلفرلايت هذا المكون، ولكن رأيت المشاركات التي توضح كيفية بناء واحد.

جيف ويلكوكس في بلوق للحصول على سبيل المثال لديها واحد.

نصائح أخرى

وأنا ربما مدرسة القديمة قليلا، لكني أحب القيام بهذا النوع من شيء نفسي. يمكنك كتابة رمز صغيرة على الواجهة الخلفية لإسقاط عدد حيوية من العناصر في الفضاء (مع وجود الشبكة)، وجعلها عرض ديناميكية ومتباعدة بشكل متساو.

وهذا من المرجح أن تعمل بالطريقة التي تريدها، ويكون tweakable.

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