6

子コントロールでスタイルを共有する多数のUserControlを備えたWPF4アプリがあります。そのため、App.xamlでいくつかのスタイルを作成しています。例えば:

<Style x:Key="ViewTitle" TargetType="{x:Type Border}">
    <Setter Property="BorderBrush" Value="LightGray" />
    <Setter Property="HorizontalAlignment" Value="Stretch" />
    <Setter Property="VerticalAlignment" Value="Top" />
</Style>

次に、UserControlsで、StaticResourceを使用してそれらを参照します。次に例を示します。

<Border Style="{StaticResource ViewTitle}">
    <TextBlock Margin="6,3,4,5" FontSize="18" FontWeight="Bold" Foreground="White" HorizontalAlignment="Left" Text="Host Management" />
</Border>

これはすべて正常に機能します。問題は、Visual Studio 2010 RCがStaticResource参照の下に青い波線を表示し、次のように言っていることです。リソース「ViewTitle」を解決できませんでした。

どうしたの?これはVisualStudioの問題ですか、それとも何か問題がありますか?

4

2 に答える 2

10

「ビルドして正常に動作する」というコメントのメモから、これはほぼ間違いなく Visual Studio の問題です。残念ながら、VS WPF デザイナーはバグが多いことで有名であり、完全に正当な XAML を解決または処理できないことがよくあります。したがって、唯一の真のテストは、コンパイルして実行することです。煩わしいですが、一緒に暮らすことを学ぶだけです。

Expression Blend デザイナは、この状況をより適切に処理できる場合があります。Blend はよりビジュアル デザイナーを目指していますが (グラフィック デザイナーが主なターゲット ユーザーです)、Blend 3 では XAML ソース コードの編集のサポートが大幅に改善されています。試してみる価値があるかもしれません。

于 2010-03-06T01:05:14.910 に答える
1

この問題は、Expression Blend 4 で「解決」されました。

Blend 4 では、解決できないリソースがある場合に、設計時のリソースを検索するオプションが自動的に提供されます。

次に Blend は、リソースにアクセスする DesignTimeResourceDictionary を作成します。

ただし、VS2010 がメインのエディターである場合、これはあまり役に立ちません :(

ブレンド 4 を使用したソリューション:

http://adamkinney.wordpress.com/2010/05/04/design-time-resources-in-expression-blend-4-rc/

于 2010-10-12T11:28:41.413 に答える