当前位置: 首页 > wzjs >正文

蓝色为主的网站案例qq群排名优化软件官网

蓝色为主的网站案例,qq群排名优化软件官网,网站备案安全责任书是谁盖章,学ps可以从事什么工作WPF 导入自定义字体并实现按钮悬停高亮效果 完整实现方案 1. 项目结构 FontDemo/ ├── Assets/ │ └── Fonts/ │ ├── Pacifico-Regular.ttf │ └── Roboto-Bold.ttf ├── App.xaml ├── MainWindow.xaml └── MainWindow.xaml.cs2. 添加字体文…

WPF 导入自定义字体并实现按钮悬停高亮效果

完整实现方案

1. 项目结构

FontDemo/
├── Assets/
│   └── Fonts/
│       ├── Pacifico-Regular.ttf
│       └── Roboto-Bold.ttf
├── App.xaml
├── MainWindow.xaml
└── MainWindow.xaml.cs

2. 添加字体文件到项目

  1. 在项目中创建 Assets/Fonts 文件夹
  2. 将TTF字体文件复制到此文件夹
  3. 在解决方案资源管理器中右键点击字体文件 → 属性
    • 生成操作: Resource
    • 复制到输出目录: 不复制

3. App.xaml - 全局字体资源定义

<Application x:Class="FontDemo.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"StartupUri="MainWindow.xaml"><Application.Resources><!-- 定义自定义字体 --><FontFamily x:Key="PacificoFont">pack://application:,,,/Assets/Fonts/#Pacifico</FontFamily><FontFamily x:Key="RobotoBoldFont">pack://application:,,,/Assets/Fonts/#Roboto Bold</FontFamily><!-- 按钮样式 --><Style x:Key="CustomButtonStyle" TargetType="Button"><Setter Property="Background" Value="#4a6fa5"/><Setter Property="Foreground" Value="White"/><Setter Property="BorderThickness" Value="0"/><Setter Property="Padding" Value="20,10"/><Setter Property="Margin" Value="10"/><Setter Property="FontSize" Value="18"/><Setter Property="FontFamily" Value="{StaticResource PacificoFont}"/><Setter Property="Cursor" Value="Hand"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Button"><Border x:Name="border" Background="{TemplateBinding Background}"CornerRadius="8"><ContentPresenter HorizontalAlignment="Center"VerticalAlignment="Center"/></Border><ControlTemplate.Triggers><!-- 鼠标悬停效果 --><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="#6b8fc7"/><Setter Property="Foreground" Value="#ffeb3b"/><Setter Property="RenderTransform"><Setter.Value><ScaleTransform ScaleX="1.05" ScaleY="1.05"/></Setter.Value></Setter><Setter Property="Effect"><Setter.Value><DropShadowEffect BlurRadius="10" ShadowDepth="3" Color="#40000000"/></Setter.Value></Setter></Trigger><!-- 按下效果 --><Trigger Property="IsPressed" Value="True"><Setter Property="Background" Value="#3a5a85"/><Setter Property="Foreground" Value="#ffffff"/><Setter Property="RenderTransform"><Setter.Value><ScaleTransform ScaleX="0.98" ScaleY="0.98"/></Setter.Value></Setter></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style></Application.Resources>
</Application>

4. MainWindow.xaml - 主界面设计

<Window x:Class="FontDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:FontDemo"mc:Ignorable="d"Title="自定义字体与悬停效果" Height="600" Width="800"Background="#f5f7fa"><Grid><Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="*"/></Grid.RowDefinitions><!-- 标题区域 --><Border Grid.Row="0" Background="#4a6fa5" Padding="20"><TextBlock Text="自定义字体与悬停效果演示" FontSize="28" FontFamily="{StaticResource RobotoBoldFont}"Foreground="White"HorizontalAlignment="Center"/></Border><!-- 主内容区 --><Grid Grid.Row="1" Margin="20"><Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions><!-- 左侧演示区 --><StackPanel Grid.Column="0" Margin="0,0,10,0"><TextBlock Text="按钮悬停效果演示" FontSize="20" FontFamily="{StaticResource RobotoBoldFont}"Margin="0,0,0,20"/><Button Content="主要操作按钮" Style="{StaticResource CustomButtonStyle}"Height="60"/><Button Content="提交表单" Style="{StaticResource CustomButtonStyle}"Height="60"/><Button Content="删除项目" Style="{StaticResource CustomButtonStyle}"Background="#e74c3c"Height="60"><Button.Triggers><EventTrigger RoutedEvent="MouseEnter"><BeginStoryboard><Storyboard><ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"To="#ff6b5b" Duration="0:0:0.2"/></Storyboard></BeginStoryboard></EventTrigger><EventTrigger RoutedEvent="MouseLeave"><BeginStoryboard><Storyboard><ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"To="#e74c3c" Duration="0:0:0.3"/></Storyboard></BeginStoryboard></EventTrigger></Button.Triggers></Button><TextBlock Text="字体预览" FontSize="20" FontFamily="{StaticResource RobotoBoldFont}"Margin="0,40,0,10"/><TextBlock Text="Pacifico 字体示例" FontSize="24" FontFamily="{StaticResource PacificoFont}"Margin="0,0,0,10"/><TextBlock Text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" FontSize="18" FontFamily="{StaticResource PacificoFont}"Margin="0,0,0,10"/><TextBlock Text="abcdefghijklmnopqrstuvwxyz" FontSize="18" FontFamily="{StaticResource PacificoFont}"Margin="0,0,0,20"/></StackPanel><!-- 右侧演示区 --><StackPanel Grid.Column="1" Margin="10,0,0,0"><TextBlock Text="高级悬停效果" FontSize="20" FontFamily="{StaticResource RobotoBoldFont}"Margin="0,0,0,20"/><!-- 渐变按钮 --><Button Content="渐变按钮" Height="70"FontFamily="{StaticResource PacificoFont}"FontSize="20"Margin="0,0,0,20"><Button.Style><Style TargetType="Button" BasedOn="{StaticResource CustomButtonStyle}"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Button"><Border x:Name="border" CornerRadius="10"Background="#4a6fa5"><Border.Background><LinearGradientBrush StartPoint="0,0" EndPoint="1,1"><GradientStop Color="#4a6fa5" Offset="0"/><GradientStop Color="#6b8fc7" Offset="1"/></LinearGradientBrush></Border.Background><ContentPresenter HorizontalAlignment="Center"VerticalAlignment="Center"/></Border><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter TargetName="border" Property="Background"><Setter.Value><LinearGradientBrush StartPoint="0,0" EndPoint="1,1"><GradientStop Color="#6b8fc7" Offset="0"/><GradientStop Color="#8da9d9" Offset="1"/></LinearGradientBrush></Setter.Value></Setter><Setter Property="Foreground" Value="#fff176"/><Setter Property="Effect"><Setter.Value><DropShadowEffect BlurRadius="15" ShadowDepth="5" Color="#60000000"/></Setter.Value></Setter></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style></Button.Style></Button><!-- 图标按钮 --><Button Height="80"Margin="0,0,0,20"><Button.Style><Style TargetType="Button" BasedOn="{StaticResource CustomButtonStyle}"><Setter Property="Background" Value="#27ae60"/></Style></Button.Style><StackPanel Orientation="Horizontal" VerticalAlignment="Center"><Path Data="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z" Fill="White"Width="24"Height="24"Margin="0,0,10,0"Stretch="Uniform"/><TextBlock Text="收藏项目" FontFamily="{StaticResource PacificoFont}"FontSize="20"Foreground="White"/></StackPanel><Button.Triggers><EventTrigger RoutedEvent="MouseEnter"><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetProperty="Opacity"To="0.9"Duration="0:0:0.2"/><ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"To="#2ecc71" Duration="0:0:0.2"/></Storyboard></BeginStoryboard></EventTrigger><EventTrigger RoutedEvent="MouseLeave"><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetProperty="Opacity"To="1"Duration="0:0:0.3"/><ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"To="#27ae60" Duration="0:0:0.3"/></Storyboard></BeginStoryboard></EventTrigger></Button.Triggers></Button><!-- 边框按钮 --><Button Content="边框按钮" Height="60"FontFamily="{StaticResource PacificoFont}"FontSize="20"Margin="0,0,0,20"><Button.Style><Style TargetType="Button"><Setter Property="Background" Value="Transparent"/><Setter Property="Foreground" Value="#4a6fa5"/><Setter Property="BorderBrush" Value="#4a6fa5"/><Setter Property="BorderThickness" Value="2"/><Setter Property="Padding" Value="20,10"/><Setter Property="Margin" Value="10"/><Setter Property="FontSize" Value="18"/><Setter Property="FontFamily" Value="{StaticResource PacificoFont}"/><Setter Property="Cursor" Value="Hand"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Button"><Border x:Name="border" Background="{TemplateBinding Background}"BorderBrush="{TemplateBinding BorderBrush}"BorderThickness="{TemplateBinding BorderThickness}"CornerRadius="8"><ContentPresenter HorizontalAlignment="Center"VerticalAlignment="Center"/></Border><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="#4a6fa5"/><Setter Property="Foreground" Value="White"/><Setter Property="BorderBrush" Value="#4a6fa5"/><Setter Property="Effect"><Setter.Value><DropShadowEffect BlurRadius="10" ShadowDepth="3" Color="#40000000"/></Setter.Value></Setter></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style></Button.Style></Button></StackPanel></Grid></Grid>
</Window>

5. MainWindow.xaml.cs - 代码后台

using System.Windows;namespace FontDemo
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}}
}

关键实现说明

1. 导入TTF字体

<FontFamily x:Key="PacificoFont">pack://application:,,,/Assets/Fonts/#Pacifico</FontFamily>
  • 路径格式: pack://application:,,,/文件夹路径/#字体名称
  • 注意事项:
    • 字体名称不是文件名,而是字体内部名称(可通过双击字体文件查看)
    • 字体文件生成操作必须设置为"Resource"

2. 按钮悬停高亮效果实现

方法1: 使用触发器(Trigger)
<ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="#6b8fc7"/><Setter Property="Foreground" Value="#ffeb3b"/><Setter Property="RenderTransform"><Setter.Value><ScaleTransform ScaleX="1.05" ScaleY="1.05"/></Setter.Value></Setter></Trigger>
</ControlTemplate.Triggers>
方法2: 使用事件触发器(EventTrigger)和动画
<Button.Triggers><EventTrigger RoutedEvent="MouseEnter"><BeginStoryboard><Storyboard><ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"To="#ff6b5b" Duration="0:0:0.2"/></Storyboard></BeginStoryboard></EventTrigger>
</Button.Triggers>

3. 按钮样式设计技巧

圆角按钮
<Border CornerRadius="8"><!-- 按钮内容 -->
</Border>
渐变背景
<Border.Background><LinearGradientBrush StartPoint="0,0" EndPoint="1,1"><GradientStop Color="#4a6fa5" Offset="0"/><GradientStop Color="#6b8fc7" Offset="1"/></LinearGradientBrush>
</Border.Background>
悬停阴影效果
<Setter Property="Effect"><Setter.Value><DropShadowEffect BlurRadius="10" ShadowDepth="3" Color="#40000000"/></Setter.Value>
</Setter>
缩放动画
<Setter Property="RenderTransform"><Setter.Value><ScaleTransform ScaleX="1.05" ScaleY="1.05"/></Setter.Value>
</Setter>

4. 字体应用方式

全局样式应用
<Style x:Key="CustomButtonStyle" TargetType="Button"><Setter Property="FontFamily" Value="{StaticResource PacificoFont}"/>
</Style>
单个控件应用
<Button FontFamily="{StaticResource PacificoFont}"/>
文本元素应用
<TextBlock FontFamily="{StaticResource RobotoBoldFont}"/>

常见问题解决方案

1. 字体未正确加载

  • 检查项:

    1. 字体文件是否包含在项目中
    2. 字体文件属性是否设置为"Resource"
    3. 字体名称拼写是否正确(区分大小写)
    4. 字体路径是否正确
  • 调试方法:

// 在代码中检查字体是否加载成功
var fontUri = new Uri("pack://application:,,,/Assets/Fonts/Pacifico-Regular.ttf");
var fontFamily = new FontFamily(fontUri, "Pacifico");

2. 悬停效果不生效

  • 可能原因:

    1. 触发器条件设置错误
    2. 样式作用域问题
    3. 其他样式覆盖
  • 解决方案:

    1. 确保使用正确的依赖属性(IsMouseOver)
    2. 检查样式作用域,确保应用了自定义样式
    3. 使用BasedOn继承基本样式,避免覆盖

3. 字体渲染问题

  • 优化技巧:
<TextBlock Text="平滑字体渲染"TextOptions.TextFormattingMode="Display"TextOptions.TextRenderingMode="ClearType"/>

高级技巧

1. 动态切换字体

private void ChangeFontButton_Click(object sender, RoutedEventArgs e)
{var button = sender as Button;button.FontFamily = (FontFamily)Application.Current.Resources["RobotoBoldFont"];
}

2. 创建字体资源字典

FontResources.xaml:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><FontFamily x:Key="MainFont">pack://application:,,,/Assets/Fonts/#Roboto</FontFamily><FontFamily x:Key="HeadingFont">pack://application:,,,/Assets/Fonts/#Roboto Bold</FontFamily><FontFamily x:Key="DecorativeFont">pack://application:,,,/Assets/Fonts/#Pacifico</FontFamily>
</ResourceDictionary>

在App.xaml中引用:

<Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="FontResources.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary>
</Application.Resources>

3. 创建字体混合效果

<TextBlock Text="混合字体效果"><TextBlock.Inlines><Run Text="使用" FontFamily="{StaticResource RobotoBoldFont}"/><Run Text="不同" FontFamily="{StaticResource PacificoFont}" Foreground="#4a6fa5"/><Run Text="字体" FontFamily="{StaticResource RobotoBoldFont}"/></TextBlock.Inlines>
</TextBlock>
http://www.dtcms.com/wzjs/515146.html

相关文章:

  • 长沙网开亿面做网站多少钱网站发布平台
  • 怎么修改网站源文件小程序
  • 顶呱呱网站开发推广优化工具
  • 销售推广做那个网站西安核心关键词排名
  • 网站建设成果电脑培训学校在哪里
  • 乌鲁木齐官方网站百度上如何做优化网站
  • 可以做砍价活动的网站建站优化推广
  • wordpress 选择服务器灵宝seo公司
  • 大连公司招聘太原seo关键词优化
  • html5手机网站欣赏河北百度seo
  • 河南住房和城乡建设厅网站资质微博推广有用吗
  • psd做网站切片广告软文范例200字
  • 上传网站步骤阳西网站seo
  • 谷歌网站推广销售百度网站权重查询
  • 关于建设集团公司网站的报告网络营销方案范文
  • 用bootstrap做的手机推销网站模板河北seo推广公司
  • 怎样在手机上做自己的网站360免费建站教程
  • 网站推广方案中确定目标是指免费长尾词挖掘工具
  • 做购物微信网站优化大师优化项目有
  • 制作商城网站日本积分榜最新排名
  • 茶叶网站建设的优势百度明星人气榜
  • 元氏县城有做网站广告的吗seo课程心得体会
  • 中小企业建站2023年新闻热点事件摘抄
  • 深圳网站建设hi0755营销策划与运营方案
  • 江苏自助建站平台怎样把个人介绍放到百度
  • 自己电脑做网站服务器小工具企业查询免费
  • p2p网贷网站建设最新热点新闻事件
  • 海南网页设计公司排名推送者seo
  • 深圳最好的网站建设营销软文范例大全100字
  • 怎么用虚拟主机做网站宁德市教育局官网