Eigenschaft, die nicht erkannt oder nicht erreichbar Fehler beim laden von VS2010-Projekt in Expression Blend
Habe ich ein Projekt in VS2010 verwendet XAML und jetzt muss ich laden Sie es in Expression Blend 4. Das Projekt baut und betreibt in VS2010 und dies ist das erste mal geladen wurde in die Mischung. Es TUT erstellen Sie und führen Sie in der Mischung, obwohl die Mitglieder werden nicht erkannt.
Warum ist die Skala-Eigenschaft nicht anerkannt und warum wird es als Fehler, wenn es funktionell funktioniert?
BEARBEITEN Obwohl diese baut und betreibt, die XAML ist nicht grafisch dargestellt, in Mischung und können daher nicht geändert werden, indem eine nicht-technische Benutzer.
In einer Reihe von den .xaml-Dateien, die Verweise auf Benutzersteuerelemente es ist ein Attribut, das nicht erkannt wird, durch Mischung mit dem Fehler:
The member "XXXX" is not recognized or is not accessible
Eigentum besteht in der .cs code-behind-Datei und in jedem Fall die Fehlermeldung ist die gleiche.
Ich habe eine Menge von möglichen Antworten auf diese Fragen im internet, aber keiner von Ihnen ist eine Lösung. Die referenzierten Artikel sind nicht schreibgeschützt. Die verschiedenen Klassen und Eigenschaften sind Öffentlich. Außerdem habe ich die folgenden WPF-Referenz in der .csproj-Datei, die fehlte.
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Im folgenden code das Attribut "Scale" wird nicht erkannt, obwohl es vorhanden ist als Eigenschaft in der Kontrolle durch die Nutzer.
Hier wird das UserControl in MyLogo.xaml:
<UserControl x:Class="NamespaceX.NamespaceY.UI.Shapes.MyLogo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="132" Width="105">
<Canvas>
<Canvas.LayoutTransform>
<ScaleTransform x:Name="st" CenterX="0" CenterY="0" />
</Canvas.LayoutTransform>
<Image Source="/Client;component/Images/MyLogo.png"/>
</Canvas>
Hier ist der code, der hinter MyLogo.xaml.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace NamespaceX.NamespaceY.UI.Shapes
{
///<summary>
///Interaction logic for MyLogo.xaml
///</summary>
public partial class MyLogo : UserControl
{
public double Scale
{
get
{
return st.ScaleX;
}
set
{
st.ScaleX = value;
st.ScaleY = value;
}
}
public MyLogo()
{
InitializeComponent();
}
}
}
In meiner Navigation.der xaml-Datei habe ich das:
<UserControl x:Class="NamespaceX.NamespaceY.UI.UserControls.Navigation"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:shape="clr-namespace:NamespaceX.NamespaceY.UI.Shapes"
Height="185" Width="1280" Loaded="UserControl_Loaded">
<FrameworkElement.Resources>
<ResourceDictionary Source="../Resources/Main.xaml" />
</FrameworkElement.Resources>
<Canvas>
<shape:MyLogo Scale="1.2" Height="181.483" Canvas.Left="38" Canvas.Top="4" Width="188" />
<StackPanel Canvas.Left="205" Canvas.Top="-2" Width="1062">
</StackPanel>
</Canvas>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist die Lösung. In der Anwendung ist .csproj-Datei, ändern Sie diese:
zu diesem:
Nicht täuschen lassen durch die Tatsache, dass Visual Studio berichten, dass Sie mit AnyCPU mehr in den Konfiguration-manager. Sie müssen von hand Bearbeiten .csproj-Datei.
Sind Sie im Zusammenhang in der Tatsache, dass eine änderung der Plattform Veränderungen der zwischengespeicherte Assemblys. Die akzeptierte Antwort ist nicht akzeptabel.
Dies ist, was ich empfehlen:
Den betroffenen XAML sollte nun klar sein, der build-Fehler.
Dies funktioniert für mich, Ihre Ergebnisse können variieren.
Ändern die build-Eigenschaften des Projekts zu 'Any CPU' das problem bei mir gelöst. Ich kann immer noch nicht verstehen, wie das für das problem relevant ist. Aber natürlich Tat es das Magische.
Wie schon andere gesagt haben, ändern Sie das Ziel x64 auf AnyCPU behebt die Fehler im designer, so Bizarr, wie dieser scheint.
Fand ich Folgendes auf der Visual-Studio-Forum:
(Q) Design-Ansicht ist nicht verfügbar, für x64-und ARM-Zielplattformen, wenn das Dokument enthält benutzerdefinierte Elemente (XAML mit einem Steuerelement, zum Beispiel).
(A) Beginnend mit Visual Studio 2015, wir haben es ermöglicht Ihnen die Gestaltung/Autor XAML-auch wenn Sie das Ziel nichts, aber x86. Visual Studio 2015 Update 2 sollten zusammen zu bringen mehrere Korrekturen und änderungen, um diese Erfahrung noch besser funktionieren.
Jedoch, es ist erwähnenswert, dass wir nicht in der Lage zum ausführen von beliebigen code, den Sie haben könnte, geschrieben im designer, wenn das Projekt zielt auf nichts, aber x86. Dies ist aufgrund der Einschränkung, dass ein x86-Prozess (der die XAML-designer ist) kann nicht ausgeführt werden, ARM-oder x64-code. Sie sollten in der Lage sein zu sehen und Bearbeiten Sie alle der XAML-Code auf der Seite, mit jedem benutzerdefinierte Typen ersetzt Ersatz zur Erhaltung der WYSIWYG-Erfahrung so viel wie möglich (und switch zu x86, wenn Sie wirklich kümmert, läuft der code in der designer).
Ich hatte das gleiche problem mit Silverlight stellt sich heraus, es war der namespace hatte ich auf meiner Benutzer-Steuerelement zu lang war, aber ich machte es kürzer und es funktioniert. Hoffe, es hilft!
War ich in der Lage zu reproduzieren /lösen dieses problem konsequent mit ein vb.net Projekt in VS2012.
In der Projekt - ... Eigenschaften ... Kompilieren ... Ziel-CPU eingestellt ist, auf AnyCPU (Standard). Alles funktioniert einwandfrei.
Ändern Sie die Ziel-CPU auf x64, Speichern Sie und Erstellen Sie
Schließen und öffnen Sie die Lösung.
Bekommt man jetzt die "member "XXXX" wird nicht erkannt oder ist nicht erreichbar" Fehler
Ändern Sie die Ziel-CPU zurück zu einer CPU, Speichern Sie und Erstellen Sie
Dem Fenster zeigt jetzt korrekt.
Hatte ich auch die gleiche Ausnahme. Mein problem war, dass der Typ der Eigenschaft wurde in einer Versammlung, die wurde nicht verwiesen, die in dem Projekt, wo ich das Benutzersteuerelement.