gpt4 book ai didi

WPF : dynamic view/content

转载 作者:行者123 更新时间:2023-12-02 02:50:20 26 4
gpt4 key购买 nike

我是 WPF 的初学者,所以我问这个..

假设我有一个窗口,在窗口内我想要有一些类似容器的东西,可以只是边框,也可以是面板(用 winform 术语来说)。容器的内容绑定(bind)到所选选项(例如:按钮)。因此,例如,当用户选择选项 1 时,容器显示图表;当用户选择选项 2 时,容器显示充满数据的 ListView ;当用户选择选项 3 时,容器会显示其他内容,依此类推。

执行此操作的最佳/最好(或最简单)方法是什么?我正在考虑对容器的内容使用用户控件,但不知道这是否是一个很好的解决方案,也不知道使用用户控件显示一点复杂的东西以及可能一些计算的性能。大家还有什么想法吗?

illustration:

最佳答案

详细说明@Sheridan的答案,这是一个简单的 TabControl XAML,可以满足您的需要:

<TabControl TabStripPlacement="Left">

<TabItem Header="Option 1">
<Grid Background="DarkGray">
<TextBlock Foreground="AliceBlue" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" Text="View 1"/>
</Grid>
</TabItem>

<TabItem Header="Option 2">
<Grid Background="DarkBlue">
<TextBlock Foreground="AliceBlue" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" Text="View 2"/>
</Grid>
</TabItem>

<TabItem Header="Option 3">
<Grid Background="DarkSlateBlue">
<TextBlock Foreground="AliceBlue" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" Text="View 3"/>
</Grid>
</TabItem>

</TabControl>

结果:

enter image description here

您可以通过将这个简单的 Style 添加到您的 Window.Resources 来对其进行一些自定义:

 <Window.Resources>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<RadioButton Content="{TemplateBinding Header}" Margin="2"
IsChecked="{Binding IsSelected, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>

结果是:

enter image description here

“WPF 心态”让您根据 UI 控件的功能而不是外观来思考 UI 控件,这是一个 TabControl =)

关于WPF : dynamic view/content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18523745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com