2011-11-08 191 views
0

我在我的項目中有我的ResourceDictionary.xaml文件。它綁定在App.xaml中。一切工作正常,直到我加入這個微軟的組合框模板:http://msdn.microsoft.com/en-us/library/ms752094.aspx找不到資源字典WPF

它無法找到我的資源字典文件,並拋出異常:

Unable to find the specified file. at Microsoft.Windows.Design.Platform.ViewProducerBase.Microsoft.Expression.DesignModel.DocumentModel.IDocumentRootResolver.GetDocumentRoot(String path) 
    at Microsoft.Expression.Platform.WPF.InstanceBuilders.ResourceDictionaryInstanceBuilder.ProvideResourceDictionary(IInstanceBuilderContext context, DocumentCompositeNode resourceDictionaryReferenceNode, IDocumentRoot& relatedRoot) 

這裏的App.xaml

<Style TargetType="{x:Type TextBox}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TextBox}"> 
       <Border Background="{TemplateBinding Background}" x:Name="Bd" BorderBrush="Gray" BorderThickness="2" CornerRadius="2"> 
        <ScrollViewer x:Name="PART_ContentHost"/> 
       </Border> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" TargetName="Bd"/> 
         <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" /> 
        </Trigger> 
        <Trigger Property="IsFocused" Value="true"> 
         <Setter Property="BorderBrush" Value="#FF1388B7" TargetName="Bd"/> 
         <Setter Property="BorderThickness" Value="2"/> 
        </Trigger> 
        <Trigger Property="IsFocused" Value="false"> 
         <Setter Property="BorderBrush" Value="Gray" TargetName="Bd"/> 
         <Setter Property="BorderThickness" Value="2"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 

    </Setter> 

</Style> 



<Style x:Key="ButtonFocusVisual"> 
    <Setter Property="Control.Template"> 
     <Setter.Value> 
      <ControlTemplate> 
       <Border> 
        <Rectangle Margin="2" 
       StrokeThickness="1" 
       Stroke="#60000000" 
       StrokeDashArray="1 2" /> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<!-- Button --> 
<Style TargetType="Button"> 
    <Setter Property="SnapsToDevicePixels" 
     Value="true" /> 
    <Setter Property="OverridesDefaultStyle" 
     Value="true" /> 
    <Setter Property="FocusVisualStyle" 
     Value="{StaticResource ButtonFocusVisual}" /> 
    <Setter Property="MinHeight" 
     Value="23" /> 
    <Setter Property="MinWidth" 
     Value="75" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Border TextBlock.Foreground="{TemplateBinding Foreground}" 
      x:Name="Border" 
      CornerRadius="2" 
      BorderThickness="1"> 
        <Border.BorderBrush> 
         <LinearGradientBrush StartPoint="0,0" 
          EndPoint="0,1"> 
          <LinearGradientBrush.GradientStops> 
           <GradientStopCollection> 
            <GradientStop Color="{DynamicResource BorderLightColor}" 
          Offset="0.0" /> 
            <GradientStop Color="{DynamicResource BorderDarkColor}" 
          Offset="1.0" /> 
           </GradientStopCollection> 
          </LinearGradientBrush.GradientStops> 
         </LinearGradientBrush> 

        </Border.BorderBrush> 
        <Border.Background> 
         <LinearGradientBrush EndPoint="0.5,1" 
          StartPoint="0.5,0"> 
          <GradientStop Color="{DynamicResource ControlLightColor}" 
         Offset="0" /> 
          <GradientStop Color="{DynamicResource ControlMediumColor}" 
         Offset="1" /> 
         </LinearGradientBrush> 
        </Border.Background> 
        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="CommonStates"> 
          <VisualStateGroup.Transitions> 
           <VisualTransition GeneratedDuration="0:0:0.5" /> 
           <VisualTransition GeneratedDuration="0" 
           To="Pressed" /> 
          </VisualStateGroup.Transitions> 
          <VisualState x:Name="Normal" /> 
          <VisualState x:Name="MouseOver"> 
           <Storyboard> 
            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background). 
        (GradientBrush.GradientStops)[1].(GradientStop.Color)" 
              Storyboard.TargetName="Border"> 
             <EasingColorKeyFrame KeyTime="0" 
            Value="{StaticResource ControlMouseOverColor}" /> 
            </ColorAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Pressed"> 
           <Storyboard> 
            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background). 
        (GradientBrush.GradientStops)[1].(GradientStop.Color)" 
              Storyboard.TargetName="Border"> 
             <EasingColorKeyFrame KeyTime="0" 
            Value="{StaticResource ControlPressedColor}" /> 
            </ColorAnimationUsingKeyFrames> 
            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush). 
        (GradientBrush.GradientStops)[0].(GradientStop.Color)" 
              Storyboard.TargetName="Border"> 
             <EasingColorKeyFrame KeyTime="0" 
            Value="{StaticResource PressedBorderDarkColor}" /> 
            </ColorAnimationUsingKeyFrames> 
            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush). 
        (GradientBrush.GradientStops)[1].(GradientStop.Color)" 
              Storyboard.TargetName="Border"> 
             <EasingColorKeyFrame KeyTime="0" 
            Value="{StaticResource PressedBorderLightColor}" /> 
            </ColorAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Disabled"> 
           <Storyboard> 
            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background). 
        (GradientBrush.GradientStops)[1].(GradientStop.Color)" 
              Storyboard.TargetName="Border"> 
             <EasingColorKeyFrame KeyTime="0" 
            Value="{StaticResource DisabledControlDarkColor}" /> 
            </ColorAnimationUsingKeyFrames> 
            <ColorAnimationUsingKeyFrames 
        Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" 
              Storyboard.TargetName="Border"> 
             <EasingColorKeyFrame KeyTime="0" 
            Value="{StaticResource DisabledForegroundColor}" /> 
            </ColorAnimationUsingKeyFrames> 
            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush). 
        (GradientBrush.GradientStops)[1].(GradientStop.Color)" 
              Storyboard.TargetName="Border"> 
             <EasingColorKeyFrame KeyTime="0" 
            Value="{StaticResource DisabledBorderDarkColor}" /> 
            </ColorAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 
        <ContentPresenter Margin="2" 
         HorizontalAlignment="Center" 
         VerticalAlignment="Center" 
         RecognizesAccessKey="True" /> 
       </Border> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsDefault" 
       Value="true"> 

         <Setter TargetName="Border" 
       Property="BorderBrush"> 
          <Setter.Value> 
           <LinearGradientBrush StartPoint="0,0" 
           EndPoint="0,1"> 
            <GradientBrush.GradientStops> 
             <GradientStopCollection> 
              <GradientStop Color="{DynamicResource DefaultBorderBrushLightBrush}" 
           Offset="0.0" /> 
              <GradientStop Color="{DynamicResource DefaultBorderBrushDarkColor}" 
           Offset="1.0" /> 
             </GradientStopCollection> 
            </GradientBrush.GradientStops> 
           </LinearGradientBrush> 

          </Setter.Value> 
         </Setter> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Color x:Key="WindowColor">#FFE8EDF9</Color> 
<Color x:Key="ContentAreaColorLight">#FFC5CBF9</Color> 
<Color x:Key="ContentAreaColorDark">#FF7381F9</Color> 

<Color x:Key="DisabledControlLightColor">#FFE8EDF9</Color> 
<Color x:Key="DisabledControlDarkColor">#FFC5CBF9</Color> 
<Color x:Key="DisabledForegroundColor">#FF888888</Color> 

<Color x:Key="SelectedBackgroundColor">#FFC5CBF9</Color> 
<Color x:Key="SelectedUnfocusedColor">#FFDDDDDD</Color> 

<Color x:Key="ControlLightColor">White</Color> 
<Color x:Key="ControlMediumColor">#FF7381F9</Color> 
<Color x:Key="ControlDarkColor">#FF211AA9</Color> 

<Color x:Key="ControlMouseOverColor">#FF3843C4</Color> 
<Color x:Key="ControlPressedColor">#FF211AA9</Color> 


<Color x:Key="GlyphColor">#FF444444</Color> 
<Color x:Key="GlyphMouseOver">sc#1, 0.004391443, 0.002428215, 0.242281124</Color> 

<!--Border colors--> 
<Color x:Key="BorderLightColor">#FFCCCCCC</Color> 
<Color x:Key="BorderMediumColor">#FF888888</Color> 
<Color x:Key="BorderDarkColor">#FF444444</Color> 

<Color x:Key="PressedBorderLightColor">#FF888888</Color> 
<Color x:Key="PressedBorderDarkColor">#FF444444</Color> 

<Color x:Key="DisabledBorderLightColor">#FFAAAAAA</Color> 
<Color x:Key="DisabledBorderDarkColor">#FF888888</Color> 

<Color x:Key="DefaultBorderBrushDarkColor">Black</Color> 

<!--Control-specific resources.--> 
<Color x:Key="HeaderTopColor">#FFC5CBF9</Color> 
<Color x:Key="DatagridCurrentCellBorderColor">Black</Color> 
<Color x:Key="SliderTrackDarkColor">#FFC5CBF9</Color> 

<Color x:Key="NavButtonFrameColor">#FF3843C4</Color> 

<LinearGradientBrush x:Key="MenuPopupBrush" 
       EndPoint="0.5,1" 
       StartPoint="0.5,0"> 
    <GradientStop Color="{DynamicResource ControlLightColor}" 
      Offset="0" /> 
    <GradientStop Color="{DynamicResource ControlMediumColor}" 
      Offset="0.5" /> 
    <GradientStop Color="{DynamicResource ControlLightColor}" 
      Offset="1" /> 
</LinearGradientBrush> 

<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill" 
       StartPoint="0,0" 
       EndPoint="1,0"> 
    <LinearGradientBrush.GradientStops> 
     <GradientStopCollection> 
      <GradientStop Color="#000000FF" 
       Offset="0" /> 
      <GradientStop Color="#600000FF" 
       Offset="0.4" /> 
      <GradientStop Color="#600000FF" 
       Offset="0.6" /> 
      <GradientStop Color="#000000FF" 
       Offset="1" /> 
     </GradientStopCollection> 
    </LinearGradientBrush.GradientStops> 
</LinearGradientBrush> 

+0

如果您希望我們排除故障,您應該顯示您的App.XAML + ResourceDictionary.xaml - 否則我們只是在猜測。 – SliverNinja

+0

當然,只是一個時刻 –

回答

0

您確定您已經添加了該項目適當地盤?缺少結束標籤或者可能導致問題。嘗試評論模板的大塊,直到找到可以工作的最小值。

+0

我已經複製了那裏的所有內容 –

+1

所以開始評論的東西,直到你的應用程序再次工作。這應該給你一個線索的問題。 – GazTheDestroyer