2010-05-10 12 views
5

¿Hay alguna manera, y cualquier tutorial, artículo o muestra que permita que cada nuevo control de etiqueta creado en tiempo de ejecución tenga un resplandor, al igual que en Vista/7?Controles de etiqueta brillante en una superficie de vidrio

Gracias

+0

Cambié la etiqueta 'Glow' a WPF porque es más probable que la solución esté basada en WPF. –

+0

Esto ciertamente se puede lograr en WPF (probablemente también de manera bastante trivial), pero ¿se puede adjuntar una captura de pantalla que ilustra mejor el efecto deseado? – Charlie

+0

Adjuntar s/shot ahora –

Respuesta

3

Al no ser capaz de ver la imagen adjunta, y por lo tanto sólo adivinar cuál debe ser la apariencia deseados - Hice una prueba rápida en WPF con la alteración de la plantilla de una etiqueta y la adición de un segundo ContentPresenter con un BlurEffect aplicado.

Asumiendo que el aspecto es lo que está buscando, es una forma rápida y fácil de hacerlo.

<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

Guau, gracias por eso. Una pregunta; ¿Dónde voy a pegar este código? Obviamente, estará en algún lugar dentro del archivo XAML, pero ¿dónde? Lo siento, no he usado mucho WPF. Pero después de ver algunas cosas esta noche, ¡me encanta! –

+0

Respuesta corta: Por el simple hecho de ser pragmático y hacer que tus cosas funcionen, pégalo en la sección de recursos de tu ventana. ... ... [inserte el estilo aquí] ... Respuesta larga: Lea sobre el manejo de recursos en WPF. – ThomasAndersson

Cuestiones relacionadas