2016-09-29 4 views
0

実行時に例外Type reference cannot find type named '{clr-namespace:Dashboard.View}DashBoardColorsが届きました。タイプ参照で '{clr-namespace:xxx} MergedDictionaryのClassName型が見つかりません。

私は私の色で静的なクラスを持っている:

namespace Dashboard.View 
{ 
    public static class DashBoardColors 
    { 
     public static readonly Color TargetColor = Color.FromRgb(200, 240, 255); 
     public static readonly SolidColorBrush Red = new SolidColorBrush(Color.FromRgb(255, 0, 0)); 
     public static readonly SolidColorBrush Stale = new SolidColorBrush(Color.FromRgb(200, 200, 200)); 
     public static readonly SolidColorBrush Target = new SolidColorBrush(TargetColor); 
     public static readonly SolidColorBrush Dragging = new SolidColorBrush(Color.FromRgb(200, 255, 200)); 
     public static readonly SolidColorBrush Good = Dragging; 
    } 
} 

マイリソースディクショナリ:ユーザーコントロール内の

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:view="clr-namespace:Dashboard.View"> 

    <Style x:Key="AnimatedSwitch" TargetType="{x:Type ToggleButton}"> 
     <Setter Property="Foreground" Value="Silver" /> 
     <Setter Property="Background" Value="Silver" /> 
     <Setter Property="BorderBrush" Value="Silver" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ToggleButton"> 
        <Viewbox Stretch="Uniform" Width="40"> 
         <Canvas Name="Layer_1" Width="20" Height="20"> 
          <Ellipse Canvas.Left="0" Width="20" Height="20" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="0.5"/> 
          <Ellipse Canvas.Left="15" Width="20" Height="20" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="0.5"/> 
          <Border Canvas.Left="10" Width="15" Height="20" Name="rect416927" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0,0.5,0,0.5"/> 
          <Ellipse x:Name="ellipse" Canvas.Left="0" Width="20" Height="20" Fill="White" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="0.3"> 
           <Ellipse.RenderTransform> 
            <TranslateTransform X="0" Y="0" /> 
           </Ellipse.RenderTransform> 
           <Ellipse.BitmapEffect> 
            <DropShadowBitmapEffect Softness="0.1" ShadowDepth="0.7" Direction="270" Color="#BBBBBB"/> 
           </Ellipse.BitmapEffect> 
          </Ellipse> 
         </Canvas> 
        </Viewbox> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Trigger.EnterActions> 
           <BeginStoryboard> 
            <Storyboard> 
             <ColorAnimation Duration="0:0:0.15" 
                  Storyboard.TargetName="ellipse" 
                  Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" 
                  To="{x:Static view:DashBoardColors.TargetColor}" /> 
            </Storyboard> 
           </BeginStoryboard> 
          </Trigger.EnterActions> 
          <Trigger.ExitActions> 
           <BeginStoryboard> 
            <Storyboard FillBehavior="Stop"> 
             <ColorAnimation Duration="0:0:0.3" 
                  Storyboard.TargetName="ellipse" 
                  Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" 
                  To="White" /> 
            </Storyboard> 
           </BeginStoryboard> 
          </Trigger.ExitActions> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ResourceDictionary> 

そして、私の使用:

は、名前空間を含ま:

xmlns:view="clr-namespace:Dashboard.View" 
<UserControl.Resources> 
    <ResourceDictionary x:Key="Styles"> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/Dashboard;component/View/Styles/AnimatedStyles.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</UserControl.Resources> 

適用されるスタイル:

To="{x:Static view:DashBoardColors.TargetColor}" 

答えて

1

おっと、

I持っていたビルドアクション上:

<ToggleButton Style="{StaticResource AnimatedSwitch}" Height="20" x:Name="DateSelectToggle" /> 

問題は、以下の設定である辞書を吸収合併しましたView/Styles/AnimatedStyles.xamlはリソースに設定されています。つまり、アセンブリを含めるために必要な名前空間:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:view="clr-namespace:Dashboard.View;assembly:Dashboard"> 

または、ビルドアクションをPageに設定すると動作します。

関連する問題