6

VS 2010でWPFプロジェクトを作成しています。機能的なGUIで作業を終えた後、Blend 4でコントロールのテンプレートを編集したかったのですが、Blendでプロジェクトを開いたとき、DesignModeで彼は私に言いました


無効なXAML


結果ウィンドウで彼は次のように書いています。


[ControlName]は、Windows Presentation Foundation(WPF)プロジェクトではサポートされていません


ここで、[ControlName]は、プロジェクトで使用したデフォルトのコントロール(Window、DockPanelなど)のリストです。

この問題を回避し、Expression-Blend4のDesignModeでWPFフォームを編集できるようにするにはどうすればよいですか?

編集:

考えられる回避策。

によって作成された空のプロジェクト(* .csprojファイル)を比較した後、次の行で作成さBlendStudioていることがわかりました。VisualStudio

<PropertyGroup>
  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
 ...

Blendは次の行を使用します。

<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

したがって、に変更x86するとAnyCPU、Blendは期待どおりにプロジェクトを開きます。

4

2 に答える 2

11

このエラーメッセージは以前に一度しか見たことがありません。新しいソリューションファイルをロードされないものと比較した後、BlendではAnyCPUプラットフォーム/構成を定義する必要があることがわかりました。

それが機能しない場合は、WPFプロジェクトに必要なすべてのアセンブリ(、、、および)が参照されていることを確認しPresentationCorePresentationFrameworkくださいWindowsBase

HTH、

于 2011-08-18T22:19:16.730 に答える
1

これを追跡する無駄な一日の後、私はこれを見つけました:

テキストエディタで.projファイルを開き、ファイルの最上部を見てください。XMLにPropertyGroupセクションのリストがあります。最初のものを見て、x86またはAnyCPU以外のものと表示されている場合は、AnyCPUと表示するように変更して保存します。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>

する必要があります:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

なんで?100%確信はありませんが、UIでビルド構成を選択し、それを使用するため、Visual Studioはプロジェクトファイルのこの部分を変更しないようです(変更する場合は、正確な時期はわかりません)。代わりに。ただし、Expression Blend(バージョン4を使用)ではビルド構成を選択できないため、最上位の構成を選択するだけです。その結果、「無効なXAML」が表示され、すべての参照の横に前髪(!)が表示されます。

私の意見では(そして私の分析に欠陥がある可能性があることを知っている)、これはExpressionBlendの欠陥です。スタジオで使用できるビルド構成を使用できるだけでなく、それを選択できる必要があります。

于 2012-04-26T15:28:56.093 に答える