Visual Studio 2008 WPF设计器不会加载我的表单

时间:2009-05-28 13:47:47

标签: c# wpf visual-studio-2008 windows-forms-designer

我正在尝试在Visual Studio 2008中看到由其他人(前雇员)开发的表单,但在我尝试查看MainForm.xaml时遇到以下错误(它无法在设计器视图中加载) :

  

错误无法创建“NumericTextBox”类型的实例。 d:\ MySolution \ GUI \ MainForm.xaml

我的解决方案是这样组织的(为简洁而缩短 - 这是发生错误的最后一行):

\solution
    \Gui
        \App.xaml
        \MainForm.xaml
    \Utils
        \NumericTextBox.cs

我的MainForm.xaml看起来像这样:

<Window x:Class="MyCompany.MyDepartment.MyProject.MainForm"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:MyCompany.MyDepartment.MyProject"
        xmlns:myproject="clr-namespace:MyCompany.MyDepartment.MyProject;assembly=MyProject"
        xmlns:dsp="clr-namespace:MyCompany.MyDepartment.MyProject.DSP;assembly=MyProject"
        xmlns:filters="clr-namespace:MyCompany.MyDepartment.DSP.Filters;assembly=DSP"
        xmlns:mydepartment="clr-namespace:MyCompany.MyDepartment.Utils;assembly=Utils"
        xmlns:scope="clr-namespace:MyCompany.MyDepartment;assembly=ScopeControl"
        Title="MyProject" Height="900" Width="1024"
        Loaded="Window_Loaded"
        Closing="Window_Closing" ResizeMode="CanResize" Icon="/MyProjectGUI;component/MyProjectGUI.ico">

    <Window.Resources>
    ...
    </Window.Resources>

    <DockPanel>
        <StackPanel DockPanel.Dock="Left" CanVerticallyScroll="True" CanHorizontallyScroll="False">
            <GroupBox Name="SensorControlGroup"  Header="Sensor Control">
            ...
            </GroupBox>
            <GroupBox Header="Sensor State">
                <StackPanel Name="SensorStackPanel">
                    <Expander Name="EnvironmentExpander" Header="Environment">
                    ...
                    </Expander>
                    <Expander Name="SynthExpander" Header="Synthesiser" IsExpanded="True">
                        <Border Margin="2" Background="White" Padding="3">
                            <Grid>                                
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="120"/>
                                    <ColumnDefinition Width="60"/>
                                    <ColumnDefinition Width="60"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <Label Grid.Column="0" Grid.Row="0">Frequency (MHz):</Label>

                                <mydepartment:NumericTextBox Grid.Column="1"
                                                     x:Name="SynthFrequency" DecimalPlaces="3"
                                                     Maximum="0" Minimum="0" />

可能导致该错误的原因是什么?一切都好,但the application crashes when I run it。我希望这两个问题可能是一个相关的问题。

2 个答案:

答案 0 :(得分:1)

你提到的两个问题几乎肯定是相关的。在这两种情况下,都将处理XAML文件以创建控件。一个用于设计目的,另一个用于运行时。如果在解析文件时在运行时生成异常,那么设计者也会遇到文件问题。

我认为你需要关注原始的bug,然后回到这个。人们几乎肯定会修复另一个。

答案 1 :(得分:0)

好的,事实证明虽然Visual Studio设置为使用.net框架的v3.5,但你需要单独安装框架的v3.5 - 似乎我只安装了v2。对于遇到同样问题的其他人来说,这是一个教训!