Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF:无法解析代码隐藏中的符号_C#_Wpf_Xaml - Fatal编程技术网

C# WPF:无法解析代码隐藏中的符号

C# WPF:无法解析代码隐藏中的符号,c#,wpf,xaml,C#,Wpf,Xaml,嗨,我正在为一个项目学习一点WPF和C。在工作了一段时间后,我意识到我将使用两个相同的项目,我认为创建自己的类以使其更易于使用是合适的。但是现在我不能像在窗口中那样在代码隐藏中引用XAML中定义的元素。我得到的错误是ContactPanel.xaml.cs中的“无法解析符号'ThaButton”: using System.Windows.Controls; namespace WPF_OOM { public partial class ContactPanel : Content

嗨,我正在为一个项目学习一点WPF和C。在工作了一段时间后,我意识到我将使用两个相同的项目,我认为创建自己的类以使其更易于使用是合适的。但是现在我不能像在窗口中那样在代码隐藏中引用XAML中定义的元素。我得到的错误是ContactPanel.xaml.cs中的“无法解析符号'ThaButton”:

using System.Windows.Controls; 

namespace WPF_OOM
{
    public partial class ContactPanel : ContentControl
    {
        public Contact Person { get; set; }
        public ContactPanel()
        {
            ThaButton.Content = "test";
        }
    }
}
我的ContactPanel.xaml

<UserControl x:Class="WPF_OOM.ContactPanel:UserControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <DockPanel x:Name="dp">
        <TextBlock x:Name="NameTextBlock" Text="testtesttest" DockPanel.Dock="Left"></TextBlock>
        <Button x:Name="ThaButton" Content="button" DockPanel.Dock="Right"></Button>
    </DockPanel>
</UserControl>

希望我已经很好地解释了我的问题。我可能对这个问题采取了错误的方法,如果有更好的方法,请告诉我

干杯

从x:Class=“WPF\u OOM.ContactPanel:UserControl”中删除:UserControl,使其看起来像x:Class=“WPF\u OOM.ContactPanel”

此外,在您的代码中,ContactPanel继承表单ContentControl,但在xaml中,它继承自UserControl。这些基类必须匹配。因此,将它们都更改为UserControl或ContentControl

看起来您创建了一个单独的.cs文件?我建议使用xaml文件生成的代码。一种方法是在xaml编辑器中右键单击并选择“查看代码”。如果导入了xaml和.cs文件,则在解决方案资源管理器中重新加载项目或重新启动visual studio时,如果它们尚未合并,则应再次将它们合并

我建议查看模型-视图-模型或MVVM模式。它与WPF配合使用相当好;)


希望这能帮助您入门。

x:Class属性似乎有问题:
xaml中的类定义已关闭“WPF\u OOM.ContactPanel:UserControl”。也请考虑阅读MVVM模式。通常,你不会做这样的事情。我也有同样的问题。我通过重启VS解决了这个问题。