【问题标题】:WPF DockPanel not showing bottom componentWPF DockPanel 不显示底部组件
【发布时间】:2019-09-06 12:20:27
【问题描述】:

我是 WPF 的新手,我正在尝试创建一个带有两个文本框的窗口,顶部的 RichTextBox 使用大部分可用空间,底部的文本框。我的问题是底部的文本框没有显示。我把它放在 DockPanel 的底部。我错过了什么?

XAML 在哪里:

<Window x:Class="WpfApp1.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:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="750" MinHeight="400" MinWidth="600" Background="Black">
    <DockPanel
        Margin="5" 
        Height="Auto"
        Width="Auto">

        <RichTextBox 
            Name="richTB" 
            IsEnabled="True" 
            VerticalScrollBarVisibility="Visible" 
            IsReadOnly="True">

            <FlowDocument 
                Name="flowDoc"
                PagePadding="0">

                <Paragraph>
                    <Run Text="Test" Foreground="Red"></Run>
                    <Run Text="Foo" Foreground="Blue"></Run>
                </Paragraph>
            </FlowDocument>
        </RichTextBox>

        <TextBox 
            Name="textBox" 
            KeyDown="EnterPressed"
            Background="Plum"
            DockPanel.Dock="Bottom">

        </TextBox>
    </DockPanel>
</Window>

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您可能需要对 DockPanel 的子项重新排序。 最后一个子元素填充使用子元素列表中的最后一个子元素,它不是基于子元素在 DockPanel 中的布局位置。

    <Window x:Class="WpfApp1.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:WpfApp1"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="750" MinHeight="400" MinWidth="600" Background="Black">
        <DockPanel
            Margin="5" 
            Height="Auto"
            Width="Auto">
    
            <TextBox 
                Name="textBox" 
                KeyDown="EnterPressed"
                Background="Plum"
                DockPanel.Dock="Bottom">
            </TextBox>
    
            <RichTextBox 
                Name="richTB" 
                IsEnabled="True" 
                VerticalScrollBarVisibility="Visible" 
                IsReadOnly="True">
    
                <FlowDocument 
                    Name="flowDoc"
                    PagePadding="0">
    
                    <Paragraph>
                        <Run Text="Test" Foreground="Red"></Run>
                        <Run Text="Foo" Foreground="Blue"></Run>
                    </Paragraph>
                </FlowDocument>
            </RichTextBox>
        </DockPanel>
    </Window>
    

    【讨论】:

      【解决方案2】:

      您的文本框没有内容。停靠面板将其组件调整为所需大小,但由于没有内容,因此没有可见大小。

      在里面放一些文字,它就会显示出来。

      【讨论】:

        猜你喜欢
        • 2018-01-19
        • 1970-01-01
        • 2012-04-04
        • 1970-01-01
        • 1970-01-01
        • 2019-02-15
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多