【问题标题】:WPF (VS2010/.NET4.0) Create a re-usable form layoutWPF (VS2010/.NET4.0) 创建可重用的表单布局
【发布时间】:2011-07-16 07:05:12
【问题描述】:

简而言之,我试图实现的是拥有一个可重用的 DLL,它可能具有类似向导的表单。然后我可以简单地设置内容。我花了很多时间搜索,但我仍然不确定最好的方法是什么。我也看过this 的文章。

我在 XAML 代码中有以下结构:

<Grid x:Name="MainGrid">
    <Grid.RowDefinitions>
        <RowDefinition Height="20"/>
        <RowDefinition Height="30"/>
        <RowDefinition Height="20"/>
        <RowDefinition Height="30"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="30"/>
        <RowDefinition Height="20"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="20"/>
        <ColumnDefinition Width="50"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="50"/>
        <ColumnDefinition Width="20"/>
    </Grid.ColumnDefinitions>
    <Label Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" Content="{Binding ScreenTitleText}" />
    <Label x:Name="ContentTitle" Grid.Row="3" Grid.Column="2" Grid.ColumnSpan="2" Content="{Binding ContentTitleText}"  />
    <Button x:Name="BackButton" Grid.Row="5" Grid.Column="1" Content="Back"  />
    <Button x:Name="NextButton" Grid.Row="5" Grid.Column="3" Content="Next"   />
    <ScrollViewer Grid.Row="4" Grid.Column="2" Content="{Binding InnerContent}" x:Name="InnerControl"/>
</Grid>
  1. 我想知道如何制作它,以便我可以将 row=4 和 column=2 上的内容设置为例如一组单选按钮。
  2. 如何在 DLL 中包含此代码,以便我可以重复使用它。

谢谢!

【问题讨论】:

    标签: wpf .net-4.0 custom-controls


    【解决方案1】:

    将此创建为类库或 WPF 用户控件库中的 WPF 用户控件。然后,将 ContentControls 放在您想要动态内容的位置。您可以为每个 ContentControls 公开 DataTemplate 属性。 ContentControls 可以将它们的模板绑定到 DataTemplate,你应该很高兴。

    【讨论】:

    • 感谢@Brent。我不确定 Grid.Row="4" Grid.Column="2" 如何拥有 ContentControl。我的理解是 ContentControl 里面只能有一个项目,我们利用它的 Content 属性。我想要可以在 Grid.Row="4" Grid.Column="2" 位置设置的各种项目。还是我错过了您说我应该使用 Template 属性的地方?干杯。
    • 如果您在 Grid.Row="4" Grid.Column="2" 放置一个 ContentControl,它可以用作您想要放置在那里的各种项目的占位符。那是假设您想一次将它们放在那里。当然,没有什么能阻止你让一个项目成为一个 Grid 或其他包含多个项目的 Panel 控件。
    • 我提到了 DataTemplates 作为 UserControl 的一个选项,它提供了一种更改 ContentControls 内容的方法。只是一个可以让您的 UserControl 保持动态的选项。
    猜你喜欢
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多