首页 > 解决方案 > WPF 样式:找不到资源;资源键

问题描述

我有一些样式和模板,App.Xaml所以我可以通过多个UserControls.

编辑:这是在 app.Xaml 中:

其中一种风格是:

<Application x:Class="BaseRefence.generatingAnnotation.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:BaseRefence.generatingAnnotation"
             xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2"
             StartupUri="MainWindow.xaml">
<Application.Resources>
<Style x:Key="ComboBoxStyleRounded" TargetType="{x:Type ComboBox}">
   <Setter Property="Template">
      <Setter.Value>
         <ControlTemplate TargetType="{x:Type TextBox}">
            <Grid>
               <Border CornerRadius="25"
                       BorderThickness="1,1,2,2">
               </Border>
            </Grid>
         </ControlTemplate>
      </Setter.Value>
   </Setter>
   <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
   <Setter Property="Background" Value="{StaticResource ComboBox.Static.Background}"/>
   <Setter Property="BorderBrush" Value="#42536b"/>
   <Setter Property="Foreground" Value="Black"/>
   <Setter Property="BorderThickness" Value="1,1,2,2"/>
   <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
   <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
   <Setter Property="Padding" Value="6,3,5,3"/>
   <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
   <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
   <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
   <Setter Property="Template" Value="{StaticResource ComboBoxTemplate}"/>
   <Style.Triggers>
      <Trigger Property="IsEditable" Value="true">
         <Setter Property="IsTabStop" Value="false"/>
         <Setter Property="Padding" Value="2"/>
         <Setter Property="Template" Value="{StaticResource ComboBoxEditableTemplate}"/>
      </Trigger>
   </Style.Triggers>
</Style>
</Application.Resources>
</Application>

在 de UserControl.Xaml 我有:

<ComboBox ItemsSource="{Binding ViewFamilyTypesInProject}"                                                              
          SelectedItem="{Binding SelectedViewFamilyType, Mode=TwoWay}"
          Grid.Row="1"
          Grid.Column="1"
          Margin="10 5"
          MaxHeight="40"
          Style="{DynamicResource ComboBoxStyleRounded}">

在设计师中,一切都很好,它显示正确。但是,每当我构建和运行我的代码时,它都会给出消息并且它不会覆盖样式而是保留默认样式。

System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='ComboBoxStyleRounded'

标签: c#wpfxamlresourceswpf-style

解决方案


我的经验:我经常遇到同样的问题(使用 VS 16.6.2、.NET Core 3.1 和 WPF)。

只需关闭 Visual Studio 并重新启动它:98% 的时间错误都会消失(将来某个时候会再次出现)。


推荐阅读