【问题标题】:Glowing Label Controls On A Glass Surface [closed]玻璃表面上的发光标签控件[关闭]
【发布时间】:2011-02-17 18:09:19
【问题描述】:

是否有任何方法以及任何教程、文章、示例允许在运行时创建的每个新标签控件周围都有发光,就像在 Vista/7 上一样?

谢谢

【问题讨论】:

  • 将“Glow”标签更改为 WPF,因为该解决方案更有可能基于 WPF。
  • 这当然可以在 WPF 中完成(也可能非常简单),但是您能否附上一个更能说明所需效果的屏幕截图?
  • 显示图像未正确托管。可能应该将其托管在 Imageshack 或类似的东西上。
  • @Charlie:出于好奇,您是否看到了 GIF 图像的二进制内容,或者显示“我是一个糟糕的带宽窃贼/不要相信我!/托管 © ababa。网”?
  • 如果我右键单击另存为,我会看到带宽窃贼消息。如果我只是单击链接,我会看到二进制文件。

标签: c# wpf winforms aero-glass


【解决方案1】:

无法看到附加的图像,因此只能猜测所需的外观应该是什么 - 我在 WPF 中进行了快速测试,更改了标签的模板并添加了第二个应用了 BlurEffect 的 ContentPresenter。

假设外观正是您所寻找的,这是一种快速简便的方法。

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

【讨论】:

  • 哇,谢谢。一个问题;我将在哪里粘贴此代码?显然它会在 XAML 文件中的某个地方,但是在哪里呢?抱歉,我没怎么用过WPF。但是今晚看了几件事后,我喜欢它!
  • 简短回答:为了务实并让您的东西正常工作,请将其粘贴到窗口的资源部分。 ... ...[在此处插入样式]... 长答案:阅读 WPF 中的资源处理。
猜你喜欢
  • 2012-02-03
  • 2021-01-23
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 2016-11-19
  • 1970-01-01
相关资源
最近更新 更多