模块化GUI开发作为IDE的解决方案滞后?

时间:2015-01-16 05:04:53

标签: c# wpf user-interface visual-studio-2013

我正在使用WPF在Visual Studio中开发GUI应用程序。似乎我在窗口添加了太多东西,而且VS可怕地落后了。在屏幕上使用太多元素也有点困难。

我的很多功能都在他们自己的标签或面板中组合在一起。有没有办法一次只在一个面板上工作,然后告诉VS将其包含在主窗口的某某部分?

2 个答案:

答案 0 :(得分:2)

将您的功能分解为UserControls,每个都有特定用途。然后将它们组合成更复杂的控件组合,然后完全将应用程序窗口组合在一起。

我会调查一个类似于Model-View-ViewModel或MVVM的UI模式,它非常适合WPF。

答案 1 :(得分:0)

// MainWindow.xaml
<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Frame Name="EmbeddedView" Source="EmbeddedView.xaml"/>
    </Grid>
</Window>

// EmbeddedView.xaml
<UserControl x:Class="EmbeddedView"
             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" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    Embedded Text
</UserControl>

实际上,不仅仅是UserControl,你还需要Views和ViewModels的概念 - 请参阅JDN Smith在MSDN杂志上的开创性文章:

WPF Apps With The Model-View-ViewModel Design Pattern

最终,您将要继续使用以下内容,但首先了解Views和ViewModels:

Caliburn.Micro: Screens, Conductors, and Composition