Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf XAML TextBlock:如何使TextBlock具有可变高度?_Wpf_Xaml_Listbox_Textblock - Fatal编程技术网

Wpf XAML TextBlock:如何使TextBlock具有可变高度?

Wpf XAML TextBlock:如何使TextBlock具有可变高度?,wpf,xaml,listbox,textblock,Wpf,Xaml,Listbox,Textblock,我有一个包含文本块的列表框 有时文本块的内容太长,我希望根据需要将该条目的高度设置为两倍或三倍,以容纳文本 我试过TextWrapping=“Wrap”,但不起作用。每个文本块的高度仍然只有一行 有没有一种简单的方法可以解决XAML中的问题?谢谢 *附加信息:我试图简化问题,但完整的场景可能更好 我有一个列表框,其条目根据下面代码中的模板显示 每个条目有两条信息:产品价格,后跟产品名称 我不想使用列表框中的水平滚动条,如果需要,我希望产品名称显示在两行或更多行中。产品名称是第二个文本块 这是我的

我有一个包含文本块的列表框

有时文本块的内容太长,我希望根据需要将该条目的高度设置为两倍或三倍,以容纳文本

我试过TextWrapping=“Wrap”,但不起作用。每个文本块的高度仍然只有一行

有没有一种简单的方法可以解决XAML中的问题?谢谢

*附加信息:我试图简化问题,但完整的场景可能更好

  • 我有一个列表框,其条目根据下面代码中的模板显示
  • 每个条目有两条信息:产品价格,后跟产品名称
  • 我不想使用列表框中的水平滚动条,如果需要,我希望产品名称显示在两行或更多行中。产品名称是第二个文本块
  • 这是我的XAML:

    <ListBox Name="listBox1" ItemsSource="{Binding}" Margin="10" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock MinWidth="40"  TextAlignment="Right" Text = "{Binding ProductPrice}" />
    
    
                        <TextBlock Text = "{Binding ProductName}" TextWrapping="Wrap" />
    
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
    
        </ListBox>
    

    这将帮助您做到这一点。不要调整
    TextBlock
    的大小,只需调整滚动查看器的大小,因为texblock需要可变,因此
    ScrollViewer
    一旦超出
    ScrollViewer
    的大小,就会应用
    Scrollbar

    <ScrollViewer HorizontalScrollBarVisibility="Auto" 
         VerticalScrollBarVisibility="Auto">
      <TextBlock/>
     </ScrollViewer>
    
    
    
    对于ListBoxItem

    <ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
            <ListBox.Items>
                <TextBlock Text="{Binding LongText}" TextWrapping="Wrap"/>
            </ListBox.Items>
        </ListBox>
    

    这将帮助您做到这一点。不要调整
    TextBlock
    的大小,只需调整滚动查看器的大小,因为texblock需要可变,因此
    ScrollViewer
    一旦超出
    ScrollViewer
    的大小,就会应用
    Scrollbar

    <ScrollViewer HorizontalScrollBarVisibility="Auto" 
         VerticalScrollBarVisibility="Auto">
      <TextBlock/>
     </ScrollViewer>
    
    
    
    对于ListBoxItem

    <ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
            <ListBox.Items>
                <TextBlock Text="{Binding LongText}" TextWrapping="Wrap"/>
            </ListBox.Items>
        </ListBox>
    

    禁用列表框水平
    scrollViewer
    。这样,
    textBlock
    将被强制换行

    XAML:


    StackPanel
    不限制内容大小,因此
    textBlock
    不知道空格的结束位置,也不会进行换行。

    禁用列表框水平
    滚动查看器
    。这样,
    textBlock
    将被强制换行

    XAML:


    StackPanel
    不限制内容大小,因此
    textBlock
    不知道空格的终点,也不会进行换行。

    您使用的是
    StackPanel
    。尝试使用
    DockPanel

    <DockPanel>
     <TextBlock  DockPanel.Dock="Left" MinWidth ="40"  TextAlignment="Right" Text = "11.12" />
     <TextBlock Text = "{Binding LongText}" DockPanel.Dock="Right" TextWrapping="Wrap" />
    </DockPanel>
    
    
    
    例如:


    您正在使用的是
    StackPanel
    。尝试使用
    DockPanel

    <DockPanel>
     <TextBlock  DockPanel.Dock="Left" MinWidth ="40"  TextAlignment="Right" Text = "11.12" />
     <TextBlock Text = "{Binding LongText}" DockPanel.Dock="Right" TextWrapping="Wrap" />
    </DockPanel>
    
    
    
    例如:


    感谢您提供使用水平滚动条的选项。但我不想水平滚动。我希望每个列表框项目的高度能够自动调整以适应文本。感谢您提供使用水平滚动条的选项。但我不想水平滚动。我想自动调整每个列表框项目的高度以适应文本。我尝试了这个方法,但对我无效。实际上,列表框没有水平滚动条,因此使水平滚动条不可见并不会改变任何东西。@user776676:能否将XAML添加到问题中?找到问题会更容易。谢谢,Michael,我刚刚添加了XAML。@user776676:请查看我的编辑。我会在一分钟内添加完整的xaml。我尝试过这个,但它对我不起作用。实际上,列表框没有水平滚动条,因此使水平滚动条不可见并不会改变任何东西。@user776676:能否将XAML添加到问题中?找到问题会更容易。谢谢,Michael,我刚刚添加了XAML。@user776676:请查看我的编辑。我将在一分钟内添加完整的xaml。