Dies ist mein erster Versuch mit benutzerdefinierten Steuerelementen, und es läuft nicht gut. Ich habe eine benutzerdefinierte Grafik-Steuerelement von Canvas abgeleitet.
namespace Grapher2 {
public class SeriesManager : Canvas {
public SeriesManager() {
...
}
}
}
Sie ist im selben Projekt und Namespace wie meine Anwendung definiert. Ich habe versucht, einen Verweis auf das Steuerelement in XAML wie folgt hinzuzufügen:
<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>
Aber wenn ich versuche, den Namen des Steuerelements "seriesManager" im Code-Behind für das Fenster zu referenzieren, erhalte ich die Meldung "Der Name 'seriesManager' ist im aktuellen Kontext nicht vorhanden".
Außerdem kann der XAML-Editor das Fenster nicht rendern und gibt einen umfangreichen Stack-Trace mit der Fehlermeldung aus: "Type 'MS.Internal.Permissions.UserInitiatedNavigationPermission' in Assembly 'PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' is not marked as serializable."
Ich kann mir vorstellen, dass die Lösung für jeden, der sich mit benutzerdefinierten Steuerelementen auskennt, denkbar einfach ist. Aber ich bin verblüfft.