TheSpy
TheSpy

Reputation: 265

The resource "xxx" could not resolved

Hi i am working with C# Wpf application.I am continuously getting red squiggly where i am importing my Style for button:

 Style="{StaticResource AppButtons}"

It is compiling correctly but continuously giving warning :

The resource "AppButtons" could not resolved.

The full XAML code is :

<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>

And here is my Resource dictionary code:

<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>

Any suggestion to get me out of this warning would be highly appreciable!?

Upvotes: 1

Views: 1065

Answers (2)

Ron.B.I
Ron.B.I

Reputation: 2766

You should merge the Resource Dictionary (2nd snip) to where you use it (1st snip), follow the following example and you should be good to go:

Add this to your Grid node (could add it in any ancestor node of your Button):

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

Some good links to read regarding Resources and Resource Dictionaries:

  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

Upvotes: 2

Max Mor
Max Mor

Reputation: 96

Looks like your'e not the only one who encountered such problem, and it sounds like some bug in the VS wpf designer.

However, Expression Blend 4 deals with this problem using a design time resource dictionary which helps resolving such resources.

The resource could not be resolved (VS 2010 RC)

Upvotes: 0

Related Questions