gpt4 book ai didi

无法识别 wpf 自定义控件

转载 作者:行者123 更新时间:2023-12-04 17:13:54 25 4
gpt4 key购买 nike

这是我第一次涉足自定义控件,但进展并不顺利。我有一个从 Canvas 派生的自定义图形控件。

namespace Grapher2 {
public class SeriesManager : Canvas {
public SeriesManager() {
...
}
}
}

它定义在与我的应用程序相同的项目和命名空间中。我尝试在 XAML 中添加对控件的引用,如下所示:
<Window x:Class="Grapher2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:graph="clr-namespace:Grapher2"
Title="Grapher" Width="800" Height="600">

<StackPanel Name="container" Width="700" Height="500">
<graph:SeriesManager Name="seriesManager" Width="700" Height="500" />
</StackPanel>

但是当我尝试在窗口的代码隐藏中引用控件名称“seriesManager”时,我得到“当前上下文中不存在名称‘seriesManager’。”

此外,XAML 编辑器不会呈现窗口,给出一个巨大的堆栈跟踪错误:“在程序集‘PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’中输入‘MS.Internal.Permissions.UserInitiatedNavigationPermission’未标记为可序列化。”

我想这个解决方案对于任何完成自定义控件的人来说都是非常简单的。但我很难过。

最佳答案

你在你的 xaml 中尝试过 x:Name="seriesManager"吗?

编辑:这可能不是您说 xaml 未呈现的问题。我猜一旦你让 xaml 在设计器中呈现......后面的代码会更好地工作。

编辑 2:每当我在设计器渲染方面遇到问题时,都是因为我在自定义控件的构造函数中执行了某些操作。检查您的 SeriesManager 以查看您是否在其构造函数中执行了导致问题的操作。也许您正在引用尚不存在的东西。如果构造函数中有额外的代码,请考虑将其移至 UserControl_Loaded 事件。

关于无法识别 wpf 自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com