3

VisualStudioソリューションでBlendを使用するのに問題があります。

ランタイムでは、コンパイル時にすべてが問題ありません。

写真でわかるように、Blendはプロジェクトをビルドするように促しますが、ビルド、再構築、クリーンアップ、ビルドが成功した後でも状況は変わりません。それでも同じで、UIはデザイナーからブロックされます。

何か案は?

代替テキスト

編集:タイプミスが修正されましたが、問題が解決しません。

コンバーターコード:

namespace BlendTest
{
    public class TestConvert : IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return ((bool)value) ? Visibility.Visible : Visibility.Collapsed;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }

        #endregion
    }  
}      



<Window
  x:Class="XP2Win7.UserInterface.ImageViewer.MainView.MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:BlendTest"
  WindowState="Maximized"
  WindowStartupLocation="CenterScreen"
  Background="Transparent"
  Title="Test">
    <Window.Resources>
        <local:TestConvert x:Key="TestConvert"/>
    </Window.Resources>
    <Grid x:Name="RootLayout" >
        <TextBlock Text="Hello" Visibility="{Binding IsMargol, Converter={StaticResource TestConvert}}" FontSize="48" FontWeight="Bold" />
    </Grid>
</Window>

ありがとうアリエル

4

4 に答える 4

0

XAMLにタイプミスがあるようです。

Alubmの代わりにAlbumそしてのBlentTest代わりにBlendTest

エラーは実際には真のコンパイラエラーであると推測しています。上記の2つのタイプミスを修正すると、設計者が「修正」される可能性が高くなります。


編集:

私が見る最も可能性の高い候補は、コンバーターがXAMLファイルとは別のプロジェクトにあることです(ただし、同じソリューションにあります)。その場合は、XAML宣言でアセンブリを指定し、他のプロジェクト(BlendTestを使用)が正しく参照されていることを確認してください。すなわち:

xmlns:local="clr-namespace:BlendTest;assembly:BlendTest"

別のプロジェクトで定義された(名前空間を持つ)型を参照する場合は、アセンブリ参照も存在する必要があります。

于 2009-09-01T17:42:46.137 に答える
0

まあ、問題の原因はまだ私にはわかりませんが。

混乱の解決策は次のとおりです。

  1. 新しいコードライブラリプロジェクトを作成し、そこにすべてのコントロールとコンバーターを移動しました。

  2. XmlnsDefinition属性を使用してアセンブリを装飾し、それぞれが同じ名前空間に対応するようにしました。

  3. すべての参照を修正します。

とVoilà。

アリエル

于 2009-09-03T11:09:01.940 に答える
0

この答えは私のためにそれを修正しました:私は「プラットフォームターゲット」を「任意のCPU」にリセットしました。

于 2011-12-16T02:57:59.507 に答える
0

何が私のために働いたのですか?

ビルド出力パスをbin/x86/Debugからbin/Debugに変更するとうまくいきました。しかし、プラットフォームターゲットが「x86」に設定されていたため、それでも意味がありませんでした。そこで、この問題について詳しく調べることにしました。ドロップダウン「x86」でのプラットフォームの選択が、プロジェクト構成ファイルで設定された「値」を反映していないことがわかりました。

プロジェクトをVSでアンロードし、エディターで.csprojファイルを開いて、「プラットフォーム」の値を確認しました。驚いたことに、ビルドオプションの下のドロップダウンに「x86」が表示されている間、「AnyCPU」に設定されています。.csprojファイルを手動で編集して「x86」を読み取るだけでした。

解決する手順は次のとおりです。

  • VSプロジェクトを右クリック
  • アンロード
  • 右クリックして.csprojファイルを編集します
  • 「プラットフォーム」が正しいものに設定されていることを確認してください
于 2013-02-06T21:26:08.290 に答える