Ich habe ein Projekt in VS2010, das XAML verwendet, und jetzt muss ich es in Expression Blend 4 laden. Das Projekt wird in VS2010 erstellt und ausgeführt und ist das erste Mal, dass es in Blend geladen wurde. Es wird in Blend erstellt und ausgeführt, obwohl die Mitglieder nicht erkannt werden.
Warum wird die Scale-Eigenschaft nicht erkannt und warum wird sie als Fehler angezeigt, wenn sie funktional funktioniert?
BEARBEITEN Obwohl das XAML erstellt und ausgeführt wird, wird es in Blend nicht grafisch angezeigt und kann daher nicht von einem nicht technischen Benutzer geändert werden.
In einer Reihe von .xaml-Dateien, die Verweise auf usercontrols enthalten, gibt es ein Attribut, das von Blend nicht mit dem Fehler erkannt wird:
%Vor%Die Eigenschaft existiert in der .cs-code hinter-Datei und in jedem Fall ist die Fehlermeldung die gleiche.
Ich habe im Internet viele mögliche Antworten dazu angeschaut, aber keine davon ist eine Lösung. Die referenzierten Elemente sind nicht schreibgeschützt. Die verschiedenen Klassen und Eigenschaften sind öffentlich. Ich habe auch die folgende WPF-Referenz in die .csproj-Datei hinzugefügt, die fehlte.
%Vor%Im folgenden Code wird das Scale-Attribut nicht erkannt, obwohl es als Eigenschaft im Benutzersteuerelement vorhanden ist.
Hier ist das UserControl in MyLogo.xaml:
%Vor%
Hier ist der Code in MyLogo.xaml.cs:
%Vor%In meiner Datei Navigation.xaml habe ich Folgendes:
%Vor%
Hier ist die Lösung. Ändern Sie in der .csproj-Datei der Anwendung dies:
%Vor%dazu:
%Vor%Lassen Sie sich nicht von der Tatsache täuschen, dass Visual Studio meldet, dass Sie in AnyCPU mehr im Konfigurationsmanager ausgeführt werden. Sie müssen die .csproj-Datei manuell bearbeiten.
Sie hängen damit zusammen, dass das Ändern der Plattform die zwischengespeicherten Assemblys ändert. Die angenommene Antwort ist nicht akzeptabel.
Das empfehle ich:
Das betroffene XAML sollte jetzt keine Buildfehler mehr aufweisen.
Dies funktioniert für mich, Ihre Ergebnisse können variieren.
Wie andere bereits gesagt haben, behebt das Ändern des Ziels von x64 auf AnyCPU die Fehler im Designer, so bizarr dies auch scheint.
Ich habe Folgendes im Visual Studio Forum gefunden:
(Q) Die Entwurfsansicht ist für x64- und ARM-Zielplattformen nicht verfügbar, wenn das Dokument benutzerdefinierte Elemente enthält (z. B. XAML mit einem Benutzersteuerelement).
(A) Ab Visual Studio 2015 können Sie Ihr XAML selbst dann entwerfen / verfassen, wenn Sie auf etwas anderes als x86 abzielen. Visual Studio 2015 Update 2 sollte mehrere Korrekturen und Änderungen zusammenführen, damit diese Erfahrung noch besser funktioniert.
Es ist jedoch erwähnenswert, dass wir keinen Code ausführen können, den Sie möglicherweise in den Designer geschrieben haben, wenn das Projekt auf etwas anderes als x86 abzielt. Dies liegt an der Einschränkung, dass ein x86-Prozess (der XAML-Designer ist) keinen ARM- oder x64-Code ausführen kann. Sie sollten in der Lage sein, alle XAML auf der Seite anzuzeigen und zu bearbeiten, wobei alle benutzerdefinierten Typen durch Ersetzungen ersetzt werden, um das WYSIWYG-Erlebnis so weit wie möglich zu erhalten (und zu x86 wechseln, wenn Sie den Code im Designer wirklich ausführen möchten).
Ich konnte dieses Problem mit einem vb.net-Projekt in VS2012 konsistent reproduzieren / beheben. In Projekt ... Eigenschaften ... Übersetzen ... Die Ziel-CPU ist auf AnyCPU (Standard) eingestellt. Alles funktioniert gut.
Ändern Sie die Ziel-CPU in x64, Speichern und Erstellen
Schließen und öffnen Sie die Lösung erneut.
Sie erhalten nun das "Das Mitglied" XXXX "wird nicht erkannt oder ist nicht erreichbar" Fehler
Ändern Sie die Ziel-CPU zurück zu Any CPU, Save and Build
Das Fenster wird jetzt ordnungsgemäß angezeigt.
Ich hatte auch die selbe Ausnahme. Mein Problem war, dass der Typ der Eigenschaft in einer Assembly war, auf die im Projekt nicht verwiesen wurde, wo ich das UserControl verwende.
Tags und Links wpf visual-studio-2010 visual-studio expression-blend expression-blend-4