2011-06-27 1 views
0

Dans mon application, j'ai plusieurs menus avec la même couleur de fond, le même rayon, la même couleur de bordure et la même épaisseur de bordure. Je garde ces propriétés en tant que ressources dans mes ressources d'application de sorte que si je change la couleur de fond par exemple cela changera la couleur de tous mes menus. Je me demandais s'il était possible de créer un style pour que je puisse simplement lier ce style aux menus au lieu de lier autant de propriétés. De plus, je veux juste appliquer ce style à certaines frontières car toutes les frontières de mon application ne sont pas des menus. Comment pourrais-je faire ça?Appliquer le même style aux objets multipièces répondant à des critères spécifiques wpf

par exemple, je suis l'espoir de faire quelque chose comme:

ici est mon style dans mes ressources d'application:

 <Style x:Key="someStyle"> 
     <Style.Resources> 
      <Color x:Key="MenuBackground2">#BB252525</Color> 
      <CornerRadius x:Key="CornerRadiusMenu2">7</CornerRadius> 
      <Border x:Key="MainBorder2" > 
       <Border.Background> 
        <SolidColorBrush Color="{DynamicResource MenuBackground}"/> 
       </Border.Background> 
      </Border> 
     </Style.Resources>      
    </Style> 

puis sur la place MainWindow.xaml:

<Border Margin="498,90,25,0" Name="brdMain" Style="{DynamicResource someStyle}"></Border> 

mais quand je fais ça, brdMain ne semble pas se lier à ce style ...

Répondre

2

Votre Style n'est pas correctement défini. Ce devrait être une collection de Setters. Par exemple, votre style donné devrait être:

<Style x:Key="someStyle"> 
    <Setter Property="Background" Value="#BB252525"/> 
    <Setter Property="CornerRadius" Value="7"/> 
    etc ...      
</Style> 

Un Style est un peu plus d'un groupe de poseurs de propriété. Vous pouvez uniquement définir les propriétés de l'objet auquel le Style a été appliqué.

+0

CornerRadius ne fonctionne pas. J'ai aussi besoin de spécifier l'épaisseur de la bordure. Merci beaucoup. –

0
<Style x:Key="someStyle" TargetType="{x:Type Border}"> 
     <Setter Property="Control.Background" Value="#BB252525"/> 
     <Setter Property="Control.BorderThickness" Value=".5"/> 
     <Setter Property="Control.BorderBrush" Value="White"/> 
     <Setter Property="CornerRadius" Value="7"/>          
    </Style> 
Questions connexes