這是我第一次進入自定義控件,並且進展不順利。我有一個從Canvas派生的自定義圖形控件。wpf自定義控件不被識別
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編輯器不會渲染窗口,給出一個巨大的堆棧跟蹤錯誤:「類型'MS.Internal.Permissions.UserInitiatedNavigationPermission'在Assembly'PresentationFramework,Version = 3.0.0.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35'未標記爲可序列化。「
我想對於完成自定義控件的任何人來說,解決方案都是非常簡單的。但我很難過。
x:同名組件內的引用需要名稱,這應該解決不能在代碼隱藏中引用「seriesManager」的問題。更多信息:http://stackoverflow.com/questions/1380112/why-cant-i-use-the-name-attribute-on-usercontrol-in-the-same-assembly – Zenuka
哦,順便說一句,用x:Name代替的名稱可以解決你所有的問題,先試試這個,讓我們知道是否有更多的問題... – Zenuka
x:名稱固定它!謝謝! – Klay