首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带有图标和文本的按钮的UWP自定义样式

基础概念

UWP(Universal Windows Platform)是微软推出的一个应用程序平台,旨在支持各种设备,包括桌面、平板和手机。在UWP中,自定义样式允许开发者通过XAML(Extensible Application Markup Language)来定义控件的外观和行为。

带有图标和文本的按钮是一种常见的UI元素,它结合了视觉图标和文本标签,以提供更直观的用户界面。

相关优势

  1. 提高用户体验:图标和文本的结合可以使按钮的功能更加明确,减少用户的认知负担。
  2. 美观性:自定义样式可以提升应用程序的整体美观度,使其更具吸引力。
  3. 一致性:通过统一的自定义样式,可以确保应用程序在不同设备上具有一致的外观和感觉。

类型

  1. 纯文本按钮:只有文本标签。
  2. 纯图标按钮:只有图标。
  3. 图标+文本按钮:结合了图标和文本标签。

应用场景

这种按钮广泛应用于各种应用程序中,例如:

  • 工具栏:用于快速访问常用功能。
  • 导航菜单:用于指示不同页面或功能。
  • 操作确认:用于提示用户进行重要操作。

示例代码

以下是一个简单的UWP自定义样式示例,展示如何创建一个带有图标和文本的按钮:

代码语言:txt
复制
<Page.Resources>
    <Style x:Key="CustomIconButtonStyle" TargetType="Button">
        <Setter Property="Background" Value="LightGray"/>
        <Setter Property="Foreground" Value="Black"/>
        <Setter Property="FontSize" Value="16"/>
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal"/>
                                <VisualState x:Name="PointerOver">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" Storyboard.TargetName="ButtonBackground">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="Gray"/>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Pressed">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" Storyboard.TargetName="ButtonBackground">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="DarkGray"/>
                                        </ObjectAnimationUsingKeyLayout>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Border x:Name="ButtonBackground" Background="{TemplateBinding Background}">
                            <Grid>
                                <Image Source="Assets/icon.png" Width="20" Height="20" Margin="5"/>
                                <TextBlock Text="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="5,0,0,0"/>
                            </Grid>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Page.Resources>

<StackPanel>
    <Button Content="Home" Style="{StaticResource CustomIconButtonStyle}"/>
    <Button Content="Settings" Style="{StaticResource CustomIconButtonStyle}"/>
</StackPanel>

参考链接

常见问题及解决方法

  1. 图标显示不正确
    • 原因:图标路径错误或图标格式不支持。
    • 解决方法:确保图标文件路径正确,并且图标格式为PNG、JPEG等支持的格式。
  • 文本对齐问题
    • 原因:文本对齐属性设置不正确。
    • 解决方法:调整HorizontalContentAlignmentVerticalContentAlignment属性,确保文本在按钮中居中对齐。
  • 样式不生效
    • 原因:样式定义错误或未正确引用。
    • 解决方法:检查样式定义是否正确,并确保在XAML中正确引用了样式。

通过以上步骤,您可以创建一个带有图标和文本的自定义按钮,并解决常见的样式问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

win10 uwp 简单制作一个 Path 路径绘制图标按钮

本文告诉大家在 UWP 或 WinUI 3 里面如何简单制作一个由 Path 几何路径图形绘制图标按钮 先在资源里面定义按钮样式,重写 Template 属性,通过在 Template 里面放入 Path...L16.9497475,5.63603897 C17.3402718,5.24551468 17.9734367,5.24551468 18.363961,5.63603897 Z 这里有一个细节点是在 UWP...这几个异常这么奇怪,其实是微软从 2015 开始就毫无长进 WinUI 异常提示机制,由于经过了 COM WinUI 底层,导致了上层抛出不是本质异常,也不知道是哪一行,只能依靠逐步静态阅读代码不断运行尝试才能知道是哪里写错了...回到使用代码里面,图标按钮使用方法特别简单,只需要将以上 x:String 几何路径设置到按钮内容,然后设置按钮样式就完成 如此简单即可完成图标按钮 为了防止大家不知道上文给代码是写到哪里

16810
  • Android 自定义Switch开关按钮样式实例详解

    看下效果图: 自定义样式 2.自定义样式 2.1 原生样式 首先看下原生效果(Android 7.1): 原生效果 布局文件如下: <Switch android:layout_width="wrap_content..." android:layout_height="wrap_content" / 2.2 自定义样式 设计给效果图大多数都不会使用原生效果,所以我们需要对样式进行自定义,比如下面这种效果: 自定义效果...,默认情况下开关按钮滑动轨道高度是一样,并且在xml文件中对轨道宽高设置是无效,如果想要修改轨道高度可以这样做: 轨道高度低于开关按钮高度(效果中第一个效果):轨道增加一个透明边框 轨道高度高于开关按钮高度...设置自定义样式 thumb是开关按钮属性,track是滑动轨道属性,只需要把上面的两个selector文件设置进去就大功告成了。...GitHub传送门 总结 以上所述是小编给大家介绍Android 自定义Switch开关按钮样式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

    4.9K30

    Flutter文本、图片按钮使用

    文本、图片按钮则是这些不同UI框架中构建视图都要用到最基本控件。...Text支持两种类型文本展示: 默认展示单一样式文本Text 支持多种混合样式文本Text.rich 1.1 使用单一样式文本Text 单一样式文本Text初始化,要传入需展示字符串。...展示效果: 4 总结 UI控件是构建一个视图基本元素,而文本、图片按钮则是其中最经典控件。...首先,认识支持单一样式混合样式两种类型文本展示控件Text: 通过TextStyle控制字符串展示样式,其他参数控制文本布局,实现单一样式文本展示 通过TextSpan将字符串分割为若干片段,对每个片段单独设置样式后组装...但自定义控件样式,Flutter这些经典控件提供强大简洁扩展能力,快速开发功能复杂、样式丰富页面。

    55320

    cnblog博客园自定义样式修改标签页icon图标

    有没有发现大多数博客园标签右上角都是一个小矿工,千篇一律没有什么特色,想不想设置一个像我一样个性化icon图标呢? 按照以下四步你也可以实现自定义标签图标。...From To 第一步:挑挑拣拣  选一张icon图标(尺寸不要太大)不然加载会很慢 如果找到一个很满意图片但是很大,那么到这里https://tinypng.com/ 压缩图片。...第二步:传文件 在博客园设置界面选择文件,将你喜欢图片上传上来 第三步:写代码 在设置中页脚Html代码中插入以下script脚本 代码如下,记得将你自己图片地址替换到linkObject.href...yanzi.ico";   document.getElementsByTagName("head")[0].appendChild(linkObject); 第四步:刷新检验 保存——重新进入你博客首页...——发现大功告成,新icon图标已经生效了。

    27410

    纯CSS实现带有画布边框刻度尺样式

    前提 有一个ui需求需要实现类似在线画布功能那种边框带刻度尺效果。主要是上边框左边框需要实现此UI效果。 效果如下 业务需求 除了上面的效果之外,还需要每个大刻度是需要点击选中。...并且选中还有单独选中样式。 解决思路 1、第一种想法就是通过div实现,大刻度用边框来实现,里面的小刻度用10个标签来实现。...3、第一种第二种结合,外侧大标签用border来实现,里面的小刻度用background-image来实现。 实现方案 尝试过后可以完美实现刻度尺样式。...linear-gradient(90deg, #83aef9 1px, transparent 0); background-size: 75px 0px, 11% 10px; } # 主要样式...还有个就是选中之后样式,因为大标签刻度是用border来实现。为防止边框重叠设置右边框没有,只有最后一个元素右边框才有。

    92610

    WPF 使用 WindowChrome,在自定义窗口标题栏同时最大程度保留原生窗口样式(类似 UWPChrome)

    WPF 使用 WindowChrome,在自定义窗口标题栏同时最大程度保留原生窗口样式(类似 UWP/Chrome) 发布于 2018-07-12 07:57...本文将使用 WindowChrome 来自定义窗口样式,使其既保留原生窗口样式交互习惯,又能够具备一定自定义空间。...---- 使用 Windows 原生窗口体验应用 在自定义窗口样式同时保证一致 Windows 窗口风格体验优秀应用有这些: Windows 10 UWP 应用 当然少不了 UWP 应用...WPF 自定义窗口可是非常容易,完全自定义样式、异形都不在话下。...30 高度,但最大化时还是 30 高度这一点与原生 UWP 窗口 Chrome 行为是类似的。

    6.4K20

    创建自定义工具栏,可查看按钮图标及对应ID属性

    标签:VBA,自定义功能区 有时候,我们需要找到按钮图标及其对应FaceId属性,以便于我们在自定义菜单或其他界面时使用。...本文所介绍代码示例,是通过使用Excel VBA自定义工具栏,可以查看图标的FaceId属性。FaceId属性用于返回或设置命令栏按钮控件面的Id号。...使用下面的代码,创建一个用可用图像填充自定义工具栏,该工具栏中按钮按照Id号顺序排列,当鼠标悬浮图标按钮上时会显示其FaceID属性值。注意,修改代码中IDStop值可以查看更多图标按钮。...Application.CommandBars.Add _ (Name:="FaceIds", temporary:=True) NewToolbar.Visible = True '可以修改下面的值来查看不同FaceIDs...NewButton.FaceId = i NewButton.Caption = "FaceID = " & i Next i NewToolbar.Width = 600 End Sub 运行上面代码后效果如下图

    14010

    QPushButton 基本使用

    提供了信号槽机制,可以响应按钮状态变化事件。 4、QToolButton(工具按钮): 用于在工具栏、工具箱等上下文中显示图标文本。 可以设置文本图标样式等属性。...提供了信号槽机制,可以响应按钮点击事件。 5、QCommandLinkButton(命令链接按钮): 用于显示带有说明文本操作命令按钮。 可以设置标题、说明文本等属性。...作为常用小部件之一,QPushButton可用于添加交互性并为用户提供操作按钮。它具有丰富功能属性,可以显示文本标签或图标,支持信号与槽机制,允许分配快捷键,并可通过样式表进行自定义外观。...运行后效果如下: 2、设置按钮文本图标样式: 我们可以使用 setText() 方法为按钮设置文本,使用 setIcon() 方法设置按钮图标。...文本属性: font: 设置按钮字体样式。 text-align: 设置按钮文本对齐方式。 图标属性: icon: 设置按钮显示图标。 icon-size: 设置按钮图标的大小。

    53940

    UWP WinUI 制作一个路径矢量图标按钮样式入门

    使用矢量图还自然带有缩放时依然清晰功能 最为简单制作方式就是在按钮里面存放一个 Path 作为内容,比如做一个简单路径矢量图标按钮 <Button HorizontalAlignment=...比如我希望鼠标移动到按钮时候,按钮可以变色,比如说我感觉上面的重复代码多了,即我有多个图标按钮都有大量相似的代码,能不能做一个样式实现这些功能?...这样样式命名方法是我习惯用,因为如此可以方便一级级点下去,特别在有 ReSharper 帮助下,会更加好用,在样式特别多时候,这样写能够 ReSharper 更好进行配合 这样样式,可以应用到按钮代码上...,也写明了图标按钮内容,应用此样式按钮即可显示出也如上图效果 样式自然是追求一定通用性,上面代码只能显示固定路径图标,自然不符合咱需求。...可以看到第一个代码最简单,最后一个代码最有通用性,可以将更多图标按钮使用样式减少重复代码 那接下来给样式提出更多要求,如鼠标移动到按钮上方时,修改按钮图标颜色 对于 Path 元素来说,可以通过

    9010

    【MFC拓展库】上海道宁与BCGSOFT合作为您带来专业Micrisoft Windows开发业务组件

    02、Docking & MDI for UWP一个完整对接工具窗口多文档界面解决方案用户可以随意拖动停靠窗口,并保留他们布局自定义包含流行IDE中停靠窗口MDI功能,以及您在其他任何地方都找不到扩展功能旨在完全支持数据绑定和在...用户可以简单地在工具栏菜单之间拖放按钮。“文件”或“编辑”等所有类别都是从应用程序资源自动构建自定义机制允许修改工具栏/菜单项外观,更改项文本/图标,甚至使用库图像编辑器创建/修改图像。...自动生成列(对于 .NET)导出为 HTML RTF单元格边框 - 具有不同线条样式粗细边框(适用于 .NET)浮动文本 - 如果相邻单元格为空,则在相邻单元格上绘制文本文本环绕修剪。...各种预定义图表块。表图块。图块内文本标签。带有 5 种可自定义箭头智能直线和曲线图连接器。交互式图表编辑。能够将图表保存到 XML 或从 XML 加载图表。将图表图像复制到剪贴板。...“横向”)或垂直(“纵向”)布局平铺标题多行文本平铺图像数字标志性徽章支持“活”瓷砖自定义颜色画笔自定义瓷砖独立于操作系统:由于我们实现只是模拟 Windows 8 风格 Tiles,您可以在所有支持操作系统下使用我们

    5.6K20

    WPF 使用 WindowChrome,在自定义窗口标题栏同时最大程度保留原生窗口样式(类似 UWPChrome)

    WPF 自定义窗口样式有多种方式,不过基本核心实现都是在修改 Win32 窗口样式。...本文将使用 WindowChrome 来自定义窗口样式,使其既保留原生窗口样式交互习惯,又能够具备一定自定义空间。...使用 Windows 原生窗口体验应用 在自定义窗口样式同时保证一致 Windows 窗口风格体验优秀应用有这些: Windows 10 UWP 应用 当然少不了 UWP 应用,毕竟这就是 Windows...WPF 自定义窗口可是非常容易,完全自定义样式、异形都不在话下。...30 高度,但最大化时还是 30 高度这一点与原生 UWP 窗口 Chrome 行为是类似的。

    1.7K60

    WPF 应用完全模拟 UWP 标题栏按钮

    本文将分享一个我自制标题栏按钮样式,使其与 UWP 原生应用一模一样(同时支持自定义)。...---- 在 WPF 使用 WindowChrome,在自定义窗口标题栏同时最大程度保留原生窗口样式(类似 UWP/Chrome) 一文中,我使用 WindowChrome 尽可能将 Windows...最小化 还原 最大化 关闭 当窗口最小化时,显示还原、最大化关闭按钮。当窗口普通显示时,显示最小化、最大化关闭按钮,这也是我们见最多情况。当窗口最大化时,显示最小化、还原关闭按钮。...自绘标题栏按钮 标题栏按钮并不单独存在,所以我直接做了一整个窗口样式。使用此窗口样式,窗口能够模拟得跟 UWP 一模一样。 以下是模拟效果: ? ▲ WPF 模拟版本 ?...▲ UWP 原生版本(为避免说我拿同一个应用附图,我选了微软商店应用对比) 为了使用到这样近乎原生窗口样式,我们需要两个文件。一个放 XAML 样式,一个放样式所需逻辑代码。

    2.2K20

    修改表单元素中placeholder属性样式、清除IE浏览器中input元素清除图标眼睛图标

    一、修改input元素placeholder属性样式 在做项目的时候,一般表单元素placeholder属性样式都是使用浏览器默认,但有时候为了追求设计上美感需要修表单元素placeholder...样式(也有可能是遇到了一个处女座设计师或者是客户),就不等不修改一下placeholder样式。...} /*IE、Edge等 Trident 内核浏览器*/ :-ms-input-placeholder{ color:red; } 二、清除IE浏览器中input元素删除查看密码图标...在IE、Edge等 Trident 内核浏览器中,type = “text” input元素中有输入时会出现清除图标,type = “password” input元素中有输入时会出现眼睛图标...添加下面的样式可以去除默认图标: ::-ms-clear, ::-ms-reveal{ display: none; }

    1.8K20

    UWP 开发中,需要知道1000个问题

    ListView 如果需要设置 WPF ListView 宽度,可以使用HorizontalContentAlignment="Stretch" UWP 设置文本使用文字图标UWP 很经常看到这样图标...TargetType property 就是存在样式没有设置 TargetType ,在UWP所有的样式都需要添加 TargetType 才可以使用。...GBK 读取文本 win10 uwp 读取文本GBK错误 - CSDN博客 判断 ctrl 按下 判断 ctrl 按下,可以使用: (Window.Current.CoreWindow.GetKeyState...UWP 应用获取各类系统、用户信息 (1) - 设备系统基本信息、应用包信息、用户数据账户信息用户账户信息 获取窗口大小 获取主窗口可视大小 Windows.UI.ViewManagement.ApplicationView.GetForCurrentView...x y 大小 ContentDialog 透明背景 张高兴 UWP 开发笔记:定制 ContentDialog 样式 - 张高兴 - 博客园 bind 默认 mode {x:Bind} 默认

    1.6K20

    .NET Core.NET5.NET6 开源项目汇总11:WPF组件库1

    微软提供WPF控件功能很强大,但是样式不漂亮,需要专业美工设计样式或皮肤。圈子里总有无私奉献大牛们分享既漂亮又好用WPF组件库,下面收集了几款非常优秀WPF开源组件。...组件特征 支持大多数标准WPF控件样式变体 更多附加控件,以支持材质设计美观性流动性 在设计运行时轻松配置材质设计调色板 用于轻松构建GUI动画转换API 独立工作,也与其他流行WPF框架...也可以自定义皮肤。 ? 3、按钮 多种形状交互按钮,如圆形按钮图标按钮按钮进度、按钮文字提示等等,Web中常见效果WPF中也可以简单地使用。 ?...7、图标 Icon Pack,有成百上千钟矢量图标供选择,极大方便了开发,可用于菜单图标按钮图标等。 ?...样式自定义控件     Metro还包括一些基于WindowsPhone、Windows8Windows10(UWP)应用程序概念自定义控件。

    2.8K30

    6详解AppBar小部件

    AppBar 通常显示概括本页功能模块,例如图标标题,并且通常包含按钮或其他用户交互点。...AppBar 包含各种属性,包括颜色、大小、图标主题、文本主题等等。 背景颜色 以下代码将 AppBar 背景颜色更改为深橙色。500添加以访问颜色特定阴影,900即最暗最亮50。...工具栏高度不透明度 最后,我们有工具栏属性。工具栏包含文字,图标按钮其他任何公司前景,除了小部件,如ContainerImage。...布局添加小部件 如何为 AppBar 图标文本、背景、高度、阴影颜色工具栏设置主题 所以我们有了!...this.actionsIconTheme,//AppBar上actions图标样式 this.textTheme,//AppBar上文本样式 this.primary =

    16.3K10

    UWP 开发中,需要知道1000个问题

    ListView 如果需要设置 WPF ListView 宽度,可以使用HorizontalContentAlignment="Stretch" UWP 设置文本使用文字图标UWP 很经常看到这样图标...TargetType property 就是存在样式没有设置 TargetType ,在UWP所有的样式都需要添加 TargetType 才可以使用。...GBK 读取文本 win10 uwp 读取文本GBK错误 - CSDN博客 判断 ctrl 按下 判断 ctrl 按下,可以使用: (Window.Current.CoreWindow.GetKeyState...UWP 应用获取各类系统、用户信息 (1) - 设备系统基本信息、应用包信息、用户数据账户信息用户账户信息 ContentDialog 透明背景 张高兴 UWP 开发笔记:定制 ContentDialog...样式 - 张高兴 - 博客园 bind 默认 mode {x:Bind} 默认 Mode 是 OneTime。

    2.2K20

    Compose Text 文本 AnnotatedString 多种样式文本详解|技术创作特训营第一期

    文本 AnnotatedString 多种样式文本基本数据结构;Text源码分析fun Text( text: String, modifier: Modifier = Modifier...,可以设置文本 scaleX 水平缩放 skewX X 轴斜度;fontFeatureSettings 属于高级排版,用 CSS font-feature-settings 方式来设置文字样式...,可以通过使用不同修饰符标记来对这些文本片段进行标记,并为每个标记应用特定样式;AnnotatedString 通常使用 buildAnnotatedString 方式进行创建对应 AnnotatedString...Text(text = annotatedString1)使用字符串样式构建:允许在添加字符串时同时设置样式;使用 withStyle 函数包裹 append 函数,以便为特定文本部分应用样式;val...;可以在 Text 中添加占位等操作;用于在文本中添加内联内容,并提供自定义渲染逻辑;内联内容可以是特殊标记或占位符,用于在文本中插入自定义组件或视图;val annotatedString4 =

    2.7K32
    领券