অনুভূমিক প্রবণতা সহ আইটেমসকন্ট্রোল


225

আইটেমগুলির অনুভূমিক প্রবণতা রয়েছে এমন আইটেমসন্ট্রোল থেকে উত্তরাধিকারসূত্রে প্রাপ্ত কোনও নিয়ন্ত্রণ আপনি জানেন?

উত্তর:


463

আইটেমগুলি হোস্ট করার জন্য ব্যবহৃত প্যানেলটি কেবল পরিবর্তন করুন:

<ItemsControl ...>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

আপনার স্ট্যাকপ্যানেলে ইসআইটেমহস্ট = "সত্য" যুক্ত করার দরকার নেই?
টমাস লেভেস্ক

5
আমি বিশ্বাস করি যদি আপনি সম্পূর্ণ নিয়ন্ত্রণটি পুনরায় টেম্পলেট করে থাকেন তবে এটি কেবলমাত্র প্রয়োজনীয়। দেখুন msdn.microsoft.com/en-us/library/...
কেন্ট Boogaart

3
উত্তরটি সিলভারলাইটের জন্যও রয়েছে
স্কট

রিসোর্স ফাইলে এটি কীভাবে করবেন?
ফ্লোরিয়ান

রিসোর্স ফাইলে এটি করতে, আপনাকে x: কী কী সেট করতে হবে
টোর আওরস্টাদ ২

32

প্রচারিত উত্তরটি দুর্দান্ত, আপনি যদি আইটেমগুলি প্রসারিত করতে চান তবে এখানে একটি বিকল্প রয়েছে।

<ItemsControl.ItemsPanel>                              
    <ItemsPanelTemplate>
        <UniformGrid Rows="1" />
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>   

আপনি যদি ইউডাব্লুপি ব্যবহার করে থাকেন তবে আপনার এখান থেকে ইউডাব্লুপি-ইউনিফর্মগ্রিড প্রয়োজন: github.com/rickapps/UWP-UniformGrid-Control । আমি কেবল এটির উপরে নীলডাব্লু এর সমাধানটি প্রয়োগ করেছি। সত্যিই সহজ এবং সমস্যার সমাধান করে।
গেইল ফোড

9

শীর্ষের উত্তরটি ভাল, তবে আমি এটি ব্যবহারকারীর নিয়ন্ত্রণে কাজ করতে পারি না get আপনার যদি ইউজারকন্ট্রোলগুলির প্রয়োজন হয় তবে এটির সহায়তা করা উচিত।

অনুভূমিক ব্যবহারকারীকন্ট্রোল সহ আইটেমসকন্ট্রোল

আমার সংস্করণ:

<Window.Resources>
    <DataTemplate x:Key="ItemTemplate2">
        <StackPanel>
            <uc:MyUserControl MinWidth="20" BorderBrush="Black" BorderThickness="0.1" />
        </StackPanel>
    </DataTemplate>

    <ItemsPanelTemplate x:Key="ItemsPanelTemplate1">
        <StackPanel Orientation="Horizontal" Margin="0,0,0,0"/>
    </ItemsPanelTemplate>
</Window.Resources>

<StackPanel>
    <ItemsControl x:Name="list_MyControls"
                  HorizontalAlignment="Left"
                  VerticalAlignment="Top"
                  Margin="0,8,0,0"
                  ItemTemplate="{StaticResource ItemTemplate2}"
                  ItemsPanel="{StaticResource ItemsPanelTemplate1}" />
</StackPanel>

তথ্য জুড়তে করার জন্য, আপনাকে একটি অ্যাড করতে হবে ItemsSourceকরতে ItemsControlXAML বা কোড পিছনে হবে। এছাড়াও যে নোট uc:করা হবে xmlns:uc="NamespaceOfMyControl"ফাইল উপরের ঘোষিত।


আমি ডাব্লুপিএফ ব্যবহার করতে অভ্যস্ত নই, তাই সম্ভবত আমি যা বলব তা খুব বেসিক স্টাফ। আমি খুঁজে পেয়েছি যে কোনও ইউজারকন্ট্রোলের ভিতরে আপনার "উইন্ডো.স্রোসোর্স" এর পরিবর্তে "ইউজারকন্ট্রোল.সোর্স" ব্যবহার করা উচিত। যাইহোক, দুর্দান্ত উত্তরের জন্য ধন্যবাদ, আমার সমস্যার সমাধান করেছে।
পাওলো আন্দ্রে হ্যাককে

9

এটি কোনও আইটেমসন্ট্রোলের মধ্যে অনুভূমিক স্ক্রোলিং কীভাবে করবেন তার একটি উদাহরণ।

প্রথমত প্রধান উইন্ডো ভিউমডেল ক্লাসটি আমরা প্রদর্শন করতে চাই এমন আইটেমগুলির তালিকা পেতে / সেট করতে ব্যবহৃত হত।

MainWindowViewModel.cs

using System.Collections.Generic;

namespace ItemsControl
{
   public class Item
   {
      public Item(string title)
      {
         Title = title;
      }

      public string Title { get; set; }
   }

   public class MainWindowViewModel
   {
      public MainWindowViewModel()
      {
         Titles = new List<Item>()
         {
            new Item("Slide 1"),
            new Item("Slide 2"),
            new Item("Slide 3"),
            new Item("Slide 4"),
            new Item("Slide 5"),
            new Item("Slide 6"),
            new Item("Slide 7"),
            new Item("Slide 8"),
         };
      }

      public List<Item> Titles { get; set; }
   }
}

দেখার জন্য মূল উইন্ডো এক্সএএমএল:

MainWindow.xaml

    <Window x:Class="ItemsControl.MainWindow"
        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"
        xmlns:local="clr-namespace:ItemsControl"      
        mc:Ignorable="d"
        Title="MainWindow" Height="400" Width="400">

    <Window.DataContext>
        <local:MainWindowViewModel />
    </Window.DataContext>

    <Grid Margin="5">
        <ScrollViewer
            VerticalScrollBarVisibility="Disabled"
            HorizontalScrollBarVisibility="Auto">

            <ItemsControl
                x:Name="SearchResultList"                
                ItemsSource="{Binding Titles}">

                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel Orientation="Vertical"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>

                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border
                            Margin="5"
                            BorderThickness="1"
                            BorderBrush="Aqua">

                            <TextBlock
                                Text="{Binding Title}"
                                HorizontalAlignment="Center"                               
                                VerticalAlignment="Top"
                                FontSize="12"
                                TextWrapping="Wrap"
                                TextAlignment="Center"
                                FontWeight="DemiBold"  
                                Width="150"
                                Height="150" />
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>

            </ItemsControl>
        </ScrollViewer>

    </Grid>
</Window>

আপনার ক্লায়েন্টের ক্ষেত্রটি কত উচ্চ / প্রশস্ত তার উপর নির্ভর করে এর ফলে এই ধরণের লেআউট হবে, ওভারফ্লো আইটেমগুলি অনুভূমিকভাবে স্ক্রল করা হবে:

এখানে চিত্র বর্ণনা লিখুন

কীভাবে উল্লম্বভাবে স্ক্রোলিং করবেন তার উদাহরণ সহ আরও এই বিবরণটি এই ব্লগ লিঙ্কে পাওয়া যাবে:

http://www.technical-recipes.com/2017/how-to-orient-wrappanel-items-within-itemscontrol-lists-vertically-and-horizontally/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.