资源“;xxx”;无法解决

本文关键字:解决 xxx 资源 | 更新日期: 2023-09-27 17:59:15

嗨,我正在使用C#Wpf应用程序。我不断地得到红色歪歪扭扭,我正在导入我的风格按钮:

 Style="{StaticResource AppButtons}"

它正在正确编译,但不断发出警告:

The resource "AppButtons" could not resolved.

完整的XAML代码是:

<UserControl x:Class="AFIC.View.VLANS"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:res="clr-namespace:AFIC.Resources"
             xmlns:view="clr-namespace:AFIC.View"
             >

  <Grid >
    <Grid.RowDefinitions>
      <RowDefinition Height="*"/>
      <RowDefinition Height="*"/>
      <RowDefinition Height="*"/>
      <RowDefinition Height="*"/>
      <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="150"/>
      <ColumnDefinition Width="150"/>
      <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Label 
        Grid.Row="0" 
        Grid.Column="0"
        VerticalAlignment="Center"
        Content="VLAN NAME"
        Foreground="Black"
        Opacity="0.8"
      />
    <TextBox 
        Grid.Row="0"
        Grid.Column="1"
        Margin="0,5,0,0"
        Height="25"
        Foreground="Black"
        Opacity="0.8"
        Width="Auto"
        Text="{Binding VlanName, UpdateSourceTrigger=PropertyChanged}"  
        />
    <Label 
        Grid.Row="1" 
        Grid.Column="0"
        VerticalAlignment="Center"
        Content="VLAN ID"
        Foreground="Black"
        Opacity="0.8"
        />
    <TextBox 
        Grid.Row="1"
        Grid.Column="1"
        Margin="0,5,0,0"
        Height="25"
        Foreground="Black"
        Opacity="0.8"
        Width="Auto"
        Text="{Binding VlanID, UpdateSourceTrigger=PropertyChanged}"   
        />
    <Label 
        Grid.Row="2" 
        Grid.Column="0"
        VerticalAlignment="Center"
        Content="IP FOR VLAN"
        Foreground="Black"
        Opacity="0.8"
      />
    <Grid 
      Grid.Column="1"
      Grid.Row="2">
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="40"/>
        <ColumnDefinition Width="40"/>
        <ColumnDefinition Width="40"/>
        <ColumnDefinition Width="40"/>
      </Grid.ColumnDefinitions>
    <TextBox  
       Grid.Row="2"
       Grid.Column="0"
        Margin="5"  
        VerticalAlignment="Center"
        MaxLength="3" 
        Width="30" 
        Foreground="Black"
        Opacity="0.8"
        Text="{Binding VlanIP1, UpdateSourceTrigger=PropertyChanged}"       
        />
      <TextBox  
       Grid.Row="2"
       Grid.Column="1"
        Margin="5"  
        VerticalAlignment="Center"
        MaxLength="3" 
        Width="30" 
        Foreground="Black"
        Opacity="0.8"
        Text="{Binding VlanIP2, UpdateSourceTrigger=PropertyChanged}"
        />
      <TextBox  
       Grid.Row="2"
       Grid.Column="2"
        Margin="5"  
        VerticalAlignment="Center"
        MaxLength="3" 
        Width="30" 
        Foreground="Black"
        Opacity="0.8"
        Text="{Binding VlanIP3, UpdateSourceTrigger=PropertyChanged}"
        />
      <TextBox  
       Grid.Row="2"
       Grid.Column="3"
        Margin="5"  
        VerticalAlignment="Center"
        MaxLength="3" 
        Width="30" 
        Foreground="Black"
        Opacity="0.8"
        Text="{Binding VlanIP4, UpdateSourceTrigger=PropertyChanged}"
        />
    </Grid>
    <Label 
        Grid.Row="3" 
        Grid.Column="0"
        VerticalAlignment="Center"
        Content="DEFAULT ROUTE"
        Foreground="Black"
        Opacity="0.8"
      />
    <Grid
      Grid.Row="3"
      Grid.Column="1">
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="40"/>
        <ColumnDefinition Width="40"/>
        <ColumnDefinition Width="40"/>
        <ColumnDefinition Width="40"/>
      </Grid.ColumnDefinitions>
      <TextBox  
       Grid.Row="2"
       Grid.Column="0"
        Margin="5"  
        VerticalAlignment="Center"
        MaxLength="3" 
        Width="30" 
        Foreground="Black"
        Opacity="0.8"
        Text="{Binding VlanDefaultRoute1, UpdateSourceTrigger=PropertyChanged}"       
        />
      <TextBox  
       Grid.Row="2"
       Grid.Column="1"
        Margin="5"  
        VerticalAlignment="Center"
        MaxLength="3" 
        Width="30" 
        Foreground="Black"
        Opacity="0.8"
        Text="{Binding VlanDefaultRoute2, UpdateSourceTrigger=PropertyChanged}"       
        />
      <TextBox  
       Grid.Row="2"
       Grid.Column="2"
        Margin="5"  
        VerticalAlignment="Center"
        MaxLength="3" 
        Width="30" 
        Foreground="Black"
        Opacity="0.8"
        Text="{Binding VlanDefaultRoute3, UpdateSourceTrigger=PropertyChanged}"       
        />
      <TextBox  
       Grid.Row="2"
       Grid.Column="3"
        Margin="5"  
        VerticalAlignment="Center"
        MaxLength="3" 
        Width="30" 
        Foreground="Black"
        Opacity="0.8"
        Text="{Binding VlanDefaultRoute4, UpdateSourceTrigger=PropertyChanged}"       
        />
    </Grid>
    <Button Grid.Column="3"
            Grid.Row="0"
            Content="Add VLAN"
             Margin="10,5,0,0"
            Style="{StaticResource AppButtons}"
           />      
    <Button Grid.Column="3" 
            Grid.Row="2"
            Content="Remove VLAN"
            Margin="10,5,0,0"
            Style="{StaticResource AppButtons}"
            Width="100"/>
    <DataGrid Grid.Row="4"
              Grid.ColumnSpan="3"
              Height="200"
              Margin="10,10,0,0">     
    </DataGrid>
  </Grid>

</UserControl>

这是我的资源字典代码:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:res="clr-namespace:AFIC.Resources"
                    xmlns:VM="clr-namespace:AFIC.ViewModel"
                    >

  <Style TargetType="{x:Type Button}" x:Key="AppButtons">
    <Setter Property="Height"               Value="30"/>
    <Setter Property="FontFamily"           Value="Arial"/>
    <Setter Property="FontSize"             Value="13"/>
    <Setter Property="FontWeight"           Value="Bold"/>
    <Setter Property="Opacity"              Value="0.5" />
    <Setter Property="Foreground"           Value="{StaticResource ATTWhite}"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="Button">
          <Border CornerRadius="2" 
                    BorderBrush="White"
                    BorderThickness="0"
                    Background="{StaticResource ATTBlue}"
                    >
            <ContentPresenter
                x:Name="contentPresenter"
                ContentTemplate="{TemplateBinding ContentTemplate}"
                Content="{TemplateBinding Content}"
                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                />
          </Border>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
    <Style.Triggers>
      <Trigger Property="IsEnabled" Value="True">
        <Setter Property="Opacity" Value="1" />
      </Trigger>
    </Style.Triggers>
  </Style>
  <!-- EULA Accept Buuton Style -->
  <!-- Style inherits from the AppButtons style set above -->
  <Style BasedOn="{StaticResource AppButtons }" TargetType="{x:Type Button}" x:Key="EULAAcceptButton">
    <Setter Property="Opacity" Value="0.5" />
    <Style.Triggers>
      <DataTrigger Binding="{Binding IsChecked, ElementName=EULAAcceptOption}" Value="True">
        <Setter Property="Opacity" Value="1" />
      </DataTrigger>
      <DataTrigger Binding="{Binding IsChecked, ElementName=EULAAcceptOption}" Value="False">
        <Setter Property="IsEnabled" Value="False" />
      </DataTrigger>
    </Style.Triggers>
  </Style>
  <!-- EULA Reject Buuton Style -->
  <!-- Style inherits from the AppButtons style set above -->
  <Style BasedOn="{StaticResource AppButtons}" TargetType="{x:Type Button}" x:Key="EULARejectButton">
    <Setter Property="Opacity" Value="0.5" />
    <Style.Triggers>
      <DataTrigger Binding="{Binding IsChecked, ElementName=EULARejectOption}" Value="True">
        <Setter Property="Opacity" Value="1" />
      </DataTrigger>
      <DataTrigger Binding="{Binding IsChecked, ElementName=EULARejectOption}" Value="False">
        <Setter Property="IsEnabled" Value="False" />
      </DataTrigger>
    </Style.Triggers>
  </Style>

  <!-- Next Button Style. This Style inherits from the Button style seen above. -->
  <Style BasedOn="{StaticResource AppButtons }" TargetType="{x:Type Button}" x:Key="NextButtonStyle">
    <Setter Property="Opacity" Value="0.5" />
    <Setter Property="Content" Value="{x:Static res:Strings.WizardView_Button_Next}" />
    <Style.Triggers>
      <DataTrigger Binding="{Binding Path=LastPageConfigure}" Value="True">
        <Setter Property="Content" Value="{x:Static res:Strings.WizardView_Button_Configure}" />
      </DataTrigger>
      <DataTrigger Binding="{Binding Path=LastPageFinish}" Value="True">
        <Setter Property="Content" Value="{x:Static res:Strings.WizardView_Button_Finish}" />
      </DataTrigger>
    </Style.Triggers>
  </Style>
</ResourceDictionary>

任何让我摆脱这一警告的建议都是非常可观的!?

资源“;xxx”;无法解决

您应该将资源字典(第二个snip)合并到您使用它的位置(第一个snip

将此添加到您的网格节点(可以将其添加到按钮的任何祖先节点):

<Grid.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary 
              Source="Resources/MyResourceDictionary.xaml">
            </ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Grid.Resources>

阅读有关资源和资源词典的一些好链接:

  1. http://www.codeproject.com/Articles/35346/Using-a-Resource-Dictionary-in-WPF
  2. http://blogs.msdn.com/b/wpfsldesigner/archive/2010/06/03/creating-and-consuming-resource-dictionaries-in-wpf-and-silverlight.aspx

看起来你不是唯一一个遇到这样问题的人,这听起来像是VS wpf设计器中的一些错误。

然而,Expression Blend 4使用设计时资源字典来处理此问题,该字典有助于解决此类资源。

无法解析资源(VS 2010 RC)