টেক্সটব্লককে ডাব্লুপিএফ তালিকাবক্সে মোড়তে বাধ্য করুন


94

আমার একটি ডাব্লুপিএফ তালিকা বাক্স রয়েছে যা বার্তা প্রদর্শন করে। এটিতে বাম দিকে অবতার রয়েছে এবং ব্যবহারকারীর নাম এবং বার্তাটি অবতারের ডানদিকে উল্লম্বভাবে স্ট্যাক করা আছে। বার্তা পাঠ্য মোড়ানো শব্দ না হওয়া পর্যন্ত বিন্যাসটি ঠিক আছে তবে পরিবর্তে আমি তালিকাবক্সে একটি অনুভূমিক স্ক্রোল বারটি পাই get

আমি গুগল করেছি এবং অনুরূপ সমস্যার সমাধান পেয়েছি, কিন্তু তাদের কোনওটিই কাজ করে নি।

<ListBox HorizontalContentAlignment="Stretch"  ItemsSource="{Binding Path=FriendsTimeline}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Border BorderBrush="DarkBlue" BorderThickness="3" CornerRadius="2" Margin="3" >
                    <Image Height="32" Width="32"  Source="{Binding Path=User.ProfileImageUrl}"/>
                </Border>
                <StackPanel Orientation="Vertical">
                    <TextBlock Text="{Binding Path=User.UserName}"/>
                    <TextBlock Text="{Binding Path=Text}" TextWrapping="WrapWithOverflow"/> <!-- This is the textblock I'm having issues with. -->
                </StackPanel>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

উত্তর:


132

বিষয়বস্তু TextBlockসম্পত্তি ব্যবহার আবৃত করা যেতে পারে TextWrapping। পরিবর্তে StackPanel, ব্যবহার DockPanel/ Grid। আরও একটি জিনিস - এর ScrollViewer.HorizontalScrollBarVisibilityজন্য Disabledমূল্য নির্ধারণ করুন সম্পত্তি ListBox

Updated Hiddenকরার Disabledম্যাট থেকে মন্তব্য উপর ভিত্তি করে। ধন্যবাদ ম্যাট


38
আমি মনে করি আপনাকে স্ক্রোলভিউয়ার সেট করতে হবে or হরাইজেন্টালস্ক্রোলবারটি "লুকানো" না হয়ে "অক্ষম" রূপে দৃশ্যমান করুন - অন্যথায় লিস্টবক্স এখনও অনুভূমিকভাবে স্ক্রোল করার চেষ্টা করবে, আপনি কেবল স্ক্রোলবারটি দেখতে পাবেন না।
ম্যাট হ্যামিল্টন

9

সমস্যাটি তালিকাবক্সে নাও থাকতে পারে। পাঠ্যব্লকটি মোড়ানো হবে না, পিতামাতার নিয়ন্ত্রণগুলির মধ্যে যদি একটি পর্যায়ে যথেষ্ট জায়গা সরবরাহ করে, যাতে এটি মোড়ানো প্রয়োজন হয় না। এটি কোনও স্ক্রোলভিউয়ার নিয়ন্ত্রণের কারণে হতে পারে।


4
ধন্যবাদ! আমার ক্ষেত্রে তালিকাভিউতে অনুভূমিক স্ক্রোলিংটি অক্ষম করে স্ক্রোলভিউয়ারটিকে সমস্যা স্থির করেছে or হরাইজেন্টালস্ক্রোলবারভিজিবিলিটি = "অক্ষম"
আটেক

2

আপনি যদি টেক্সটব্লকটিকে বাড়তে বাধা দিতে চান এবং আপনি এটি কেবল তালিকার বাক্সের আকারে ফিট করতে চান তবে আপনার প্রস্থটি স্পষ্টভাবে সেট করা উচিত।

এটিকে পরিবর্তনশীল করার জন্য, এর অর্থ একটি স্থির মান নয়, তবে আপনাকে এটিকে ভিজ্যুয়াল ট্রিতে তার সঠিক পিতামণ্ডলের সাথে আবদ্ধ করতে হবে। আপনার এর মতো কিছু থাকতে পারে:

<ListBox ItemsSource="{Binding MyItems}" Name="MyListBox">

  <ListBox.Resources>
    <Style TargetType="ListBoxItem">
      <Setter Property="Width" 
              Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ScrollContentPresenter}, Path=ActualWidth}" />
    </Style>
  </ListBox.Resources>

  <ListBox.ItemTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding Title}" TextWrapping="Wrap" />
    </DataTemplate>
  </ListBox.ItemTemplate>

</ListBox>

যদি এটি কাজ না করে, ভিজ্যুয়াল স্টুডিওতে লাইভ ভিজ্যুয়াল ট্রি সহ সঠিক উপাদানগুলি (যা কীসের সাথে আবদ্ধ হতে হবে) সন্ধান করার চেষ্টা করুন ।

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