2010-05-10 14 views
5

Y at-il un moyen, et tous les didacticiels, articles, échantillons qui permettent à chaque nouveau Label Control créé à l'exécution d'avoir un Glow autour, comme sur Vista/7?Contrôles d'étiquettes lumineux sur une surface en verre

Merci

+0

La balise 'Glow' a été modifiée en WPF car il est plus probable que la solution soit basée sur WPF. –

+0

Cela peut certainement être accompli dans WPF (probablement très trivial, aussi bien), mais pouvez-vous joindre une capture d'écran qui illustre mieux l'effet désiré? – Charlie

+0

Fixation s/tir maintenant –

Répondre

3

Ne pas être en mesure de voir l'image ci-joint, et donc que deviner ce que les regards désirés devraient être - je fait un test rapide en WPF avec la modification du modèle d'une étiquette et en ajoutant une seconde ContentPresenter avec un BlurEffect appliqué.

En supposant que les regards est ce que vous cherchez, il est un moyen rapide et facile d'aller.

<Style TargetType="{x:Type Label}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Label}"> 
        <Border BorderBrush="{TemplateBinding BorderBrush}" 
          BorderThickness="{TemplateBinding BorderThickness}" 
          Background="{TemplateBinding Background}" 
          Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True"> 
         <Grid> 
          <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" 
           Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" 
           HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" 
           SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
           VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
           Opacity="0.5"> 

           <ContentPresenter.Effect> 
            <BlurEffect Radius="5" /> 
           </ContentPresenter.Effect> 
          </ContentPresenter> 
          <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" 
             Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" 
             HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" 
             SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
             VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 

         </Grid> 
        </Border> 
       <ControlTemplate.Triggers> 
      <Trigger Property="IsEnabled" Value="False"> 
       <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
+0

Wow, merci pour ça. Une question; Où pourrais-je coller ce code? Évidemment, ce sera quelque part dans le fichier XAML, mais où? Désolé, je n'ai pas beaucoup utilisé WPF. Mais après avoir vu quelques choses ce soir, j'adore ça! –

+0

Réponse courte: Pour être pragmatique et faire fonctionner vos affaires, collez ceci dans la section des ressources de votre fenêtre. ... ... [insérer le style ici] ... Réponse longue: -vous sur la manipulation des ressources en WPF. – ThomasAndersson