2015-03-05 3 views
0

Je prépare la certification 511, et l'une des questions que je ne comprenais pas était celui-ci:utilisation d'un style mais pas les deux ensemble dans WPF

You are developing a Windows Presentation Foundation (WPF) application.

Deux styles, bleu etvert, sont utilisés pour Border objets. Les deux styles ont les mêmes valeurs pour le CornerRadius etBrushThicknessproperties et différentes valeurs pour le Backgroundproperty.

Vous devez définir les paramètres CornerRadiuset BrushThicknesssettings dans le style Bleu ou Vert, mais pas les deux. Que devriez-vous faire? A) Séparez le bleu et le vert en deux fichiers. Mettez les paramètres de base en bleu et utilisez MergedDictionaries. Assurez-vous que le fichier bleu est le deuxième dans la liste. B) Mettez le bleu et le vert dans le même fichier. Mettez le réglage de base en bleu et marquez le bleu comme étant vert foncé. C) Mettez le bleu et le vert dans le même fichier. Mettez le réglage de base en bleu et marquez le vert en tant que basé sur Bleu. D) Séparez le bleu et le vert en deux fichiers. Mettez les paramètres de base en bleu et utilisez MergedDictionaries. Assurez-vous que le fichier vert est le deuxième dans la liste.

La bonne réponse est B

Quelqu'un peut-il me expliquer pourquoi il est B et non C

+0

Ça me semble faux. Le fait de s'appuyer sur le vert tout en mettant les attributs en bleu laissera le vert sans les attributs. Cela dit, je suppose que cela vient d'un examen de pratique? –

+1

** C ** est la bonne réponse sur celui-ci, pas ** B **. Cependant, ce n'est pas une bonne pratique de le faire de cette façon. – Herdo

+0

S'il s'agit d'une question de l'examen proprement dit, vous êtes en violation de l'accord que vous avez signé au début de l'examen. –

Répondre

1

Si nous allons avec réponse B (Le bleu est la base, et basée sur le vert):

<Style x:Key="Green" TargetType="{x:Type Border}"> 
    <Setter Property="Background" Value="Green" /> 
</Style> 

<Style x:Key="Blue" TargetType="{x:Type Border}" BasedOn="{StaticResource Green}"> 
    <Setter Property="CornerRadius" Value="5" /> 
    <Setter Property="BrushThickness" Value="1" /> 
    <Setter Property="Background" Value="Blue" /> 
</Style> 

ici, le style Greenne héritera le BorderThickness et CornerRadius propriétés du style Blue. À propos de la réponse C? (Le bleu est la base, et le vert est basé sur bleu):

<Style x:Key="Blue" TargetType="{x:Type Border}"> 
    <Setter Property="CornerRadius" Value="5" /> 
    <Setter Property="BrushThickness" Value="1" /> 
    <Setter Property="Background" Value="Blue" /> 
</Style> 

<Style x:Key="Green" TargetType="{x:Type Border}" BasedOn="{StaticResource Blue}"> 
    <Setter Property="Background" Value="Green" /> 
</Style> 

Ici, le style Green hérite des BorderThickness et CornerRadius propriétés du style Blue.

semble assez clair pour moi que C est la bonne réponse, pas B.