代码之家  ›  专栏  ›  技术社区  ›  Adrian Hood Sr

CS0103 Visual Studio中仅包含文本框和按钮的简单项目出错

  •  -1
  • Adrian Hood Sr  · 技术社区  · 6 年前

    更新 *我的错误与我使用的计算机有关,而不是FIPS验证算法的一部分。这个错误只有在我关闭VisualStudio并尝试编译默认的空白WPF表单之后才出现。我在个人电脑上做了完全相同的事情,它按照预期编译*

    我熟悉使用C#创建windows窗体。我研究了改变表单外观的方法,类似于使用皮肤,并且被告知如果我使用WPF会更容易…好的。

    为了熟悉WPF,我拿起了一本书《掌握WINDOWS演示基础》,书中讨论了MVVM和数据绑定(对我来说是新主题),进展缓慢。我觉得如果我第一次尝试创建一个简单的WPF应用程序,我就可以更快地了解WPF和Windows窗体之间的区别。然后,当我阅读时,我可以看到如何使用WPF以非常熟悉的方式使用Windows窗体完成一些事情。

    使用VS2017,我创建了一个新的WPF应用程序(.NET Framework),然后添加了一个文本框和一个按钮。我为两者都创建了一个名称,因为它似乎不像Windows窗体那样自动创建。然后双击按钮,在MainWindow.xaml.cs文件中创建一个方法块。我继续向文本框添加文本 ( txtbox_1.Text="Hello;" ).

    我注意到一些事情: (1)该 InitializeComponent(); MainWindow() 方法带下划线,对应于CS0103错误 2.)Intellisense无法识别文本框。我输入了全名,当我完成时,它产生了一个错误(相同的CS0103错误)

    我浏览了stackoverflow,但找到了关于Xamarin的文章。我听说这是为Android编写代码的一种方式,但不知道它与我正在尝试的工作有什么关系。

    这是我的XAML文件:

    <Window x:Class="WpfApp4.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApp4"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800">
        <Grid>
            <Button x:Name="btn_browse" Content="Button" HorizontalAlignment="Left" Margin="524,91,0,0" VerticalAlignment="Top" Width="75"/>
            <TextBlock x:Name="txtbox_1" HorizontalAlignment="Left" Margin="134,93,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="20" Width="363"/>
    
        </Grid>
    </Window>
    

    这是我的MainWindow.xaml.cs文件:

    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace WpfApp4
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            public void SimpleMethod()
            {
                txtbox_1.Text = "Hello";
            }
        }
    }
    
    3 回复  |  直到 6 年前
        1
  •  0
  •   Andy    6 年前

    初始化为component()的;这一行非常重要,因为它是指令使您的xaml变成UI的一部分。

    要么是这样,要么就是缺少了一些基本的参考资料,这些参考资料应该在您开始项目时添加。

    不过我建议你还是扔掉你的sln吧。

    删除它,然后重新开始。 按f5。 如果它崩溃并烧坏了,你的VS安装就坏了。

    任何人和每个人都会告诉你学习MVVM。你应该这样做。

    https://social.technet.microsoft.com/wiki/contents/articles/31915.wpf-mvvm-step-by-step-1.aspx?Redirected=true

    https://social.technet.microsoft.com/wiki/contents/articles/32164.wpf-mvvm-step-by-step-2.aspx?Redirected=true

        2
  •  0
  •   Дмитро Іванов    6 年前

    我在你的类中没有看到对System.Windows的引用。这是定义WPF窗口基本类的名称空间。因此,您的窗口基类可以从其他名称空间引用窗口类,这就是为什么它没有InitializeComponents()方法,也不能从XAML引用属性。尝试首先将这个using指令添加到代码隐藏类中。如果这不能完成任务,请检查您的项目是否有对System.Windows的引用。如果引用管理器中没有System.Windows(如果项目设置为在.NET 4.0中编译,则可能是这样),请添加对PresentationFramework、PresentationCore和WindowsBase的引用。

        3
  •  0
  •   Adrian Hood Sr    6 年前

    这个错误与我正在使用的工作计算机有关。。。与FIP有关。您应该能够创建一个新的WPF项目,并编译无错误的空白表单。我在个人电脑上做了完全相同的事情,它按照预期编译。我还能够使用代码隐藏将WinForms项目复制为WPF,没有错误。使用MVVM实现需要花费大量的时间,因为视图模型的概念对我来说是新概念,但最终,它还不错。