これは私の最初のカスタムコントロールへの進出であり、うまくいかない。私はCanvasから派生したカスタムグラフコントロールを持っています。wpfカスタムコントロールが認識されない
namespace Grapher2 {
public class SeriesManager : Canvas {
public SeriesManager() {
...
}
}
}
私のアプリケーションと同じプロジェクトと名前空間で定義されています。
<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」を参照しようとしたとき、私は「名前を取得します:私は次のようにXAMLでコントロールへの参照を追加してみました'seriesManager'は現在のコンテキストに存在しません。 "
さらに、XAMLエディタは、このウィンドウをレンダリングせず、「Assembly 'PresentationFramework、Version = 3.0.0.0、Culture = neutral」に「MS.Internal.Permissions.UserInitiatedNavigationPermission」と入力すると、 PublicKeyToken = 31bf3856ad364e35 'はシリアル化可能としてマークされていません。
解決策は、カスタムコントロールを行った人にとっては何かばかげて単純だと思います。しかし、私は困惑しています。
x:名前は同じアセンブリ内の参照に必要です。これは、コードビハインドで "seriesManager"を参照できないという問題を修正するはずです。 more info:http://stackoverflow.com/questions/1380112/why-cant-i-use-the-name-attribute-on-usercontrol-in-the-same-assembly – Zenuka
代わりにx:Nameを使用したああとBTW名前のあなたのすべての問題を解決することができます、これを最初に試してみてください、より多くの問題がある場合はお知らせください... – Zenuka
x:名前はそれを修正!ありがとう! – Klay