WPF 嵌套多个内容

WPF Nesting multiple contents

提问人:mycatlikesmilk 提问时间:10/28/2023 更新时间:10/29/2023 访问量:44

问:

我有哪个必须用作底切(我不知道它是如何正确命名的。当用户单击标题时,它会显示其内容,当用户再次单击时,它会隐藏内容)UserControl

现在我有下一个 .xaml 文件:

底切.xaml

<UserControl x:Class="App.Undercut"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:MonsterCreator"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300" Name="uc">
    <Grid>
        <!-- Header -->
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Column="1" Text="{Binding Title, ElementName=uc}" VerticalAlignment="Center" />
        </Grid>
        <!-- Content -->
        <Grid>
            <StackPanel Orientation="Vertical">
                ???
            </StackPanel>
        </Grid>
    </Grid>
</UserControl>

因此,我希望这个 UserControl 能够作为我可以设置(是 Content 属性吗?)乘法的地方工作。但我不知道如何让它像这样工作:StackPanelContent

<l:Undercut>
    <Button Content="Test 1"/>
    <TextBox Text="Test 2"/>
    <TextBlock Text="Test 3"/>
    ...
    <l:CutomUserControl ExampleProperty="Test 4"/>
</l:Undercut>

我尝试用 来做,然后我收到编译错误“属性内容设置了不止一次”ContentControl

我尝试将属性绑定到 's 属性,但它是只读的ContentStackPanelChildren

C# .NET WPF 用户界面 用户控件

评论

0赞 emoacht 10/28/2023
如果您有兴趣,可以在 WPF 中使用 Expander
0赞 mycatlikesmilk 10/28/2023
@emoacht谢谢,它解决了我的问题,但我仍然想知道,如何做我描述的事情
0赞 emoacht 10/28/2023
使用面板(包括 StackPanel)包装控件,并在 Style 中包含 ContentPresenter 而不是 StackPanel。Expader的实现将是一个很好的参考。

答: 暂无答案