আইটেমগুলির অনুভূমিক প্রবণতা রয়েছে এমন আইটেমসন্ট্রোল থেকে উত্তরাধিকারসূত্রে প্রাপ্ত কোনও নিয়ন্ত্রণ আপনি জানেন?
আইটেমগুলির অনুভূমিক প্রবণতা রয়েছে এমন আইটেমসন্ট্রোল থেকে উত্তরাধিকারসূত্রে প্রাপ্ত কোনও নিয়ন্ত্রণ আপনি জানেন?
উত্তর:
আইটেমগুলি হোস্ট করার জন্য ব্যবহৃত প্যানেলটি কেবল পরিবর্তন করুন:
<ItemsControl ...>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
প্রচারিত উত্তরটি দুর্দান্ত, আপনি যদি আইটেমগুলি প্রসারিত করতে চান তবে এখানে একটি বিকল্প রয়েছে।
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
শীর্ষের উত্তরটি ভাল, তবে আমি এটি ব্যবহারকারীর নিয়ন্ত্রণে কাজ করতে পারি না 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
করতে ItemsControl
XAML বা কোড পিছনে হবে। এছাড়াও যে নোট uc:
করা হবে xmlns:uc="NamespaceOfMyControl"
ফাইল উপরের ঘোষিত।
এটি কোনও আইটেমসন্ট্রোলের মধ্যে অনুভূমিক স্ক্রোলিং কীভাবে করবেন তার একটি উদাহরণ।
প্রথমত প্রধান উইন্ডো ভিউমডেল ক্লাসটি আমরা প্রদর্শন করতে চাই এমন আইটেমগুলির তালিকা পেতে / সেট করতে ব্যবহৃত হত।
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>
আপনার ক্লায়েন্টের ক্ষেত্রটি কত উচ্চ / প্রশস্ত তার উপর নির্ভর করে এর ফলে এই ধরণের লেআউট হবে, ওভারফ্লো আইটেমগুলি অনুভূমিকভাবে স্ক্রল করা হবে:
কীভাবে উল্লম্বভাবে স্ক্রোলিং করবেন তার উদাহরণ সহ আরও এই বিবরণটি এই ব্লগ লিঙ্কে পাওয়া যাবে: