是否可以创建带有连字支持的自定义材质图标。
我目前正在使用svgIcon
获取自定义图标,
有什么方法可以实现连字支持的自定义图标?
我当前的代码段如下所示
app.component.ts
import { Component } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { MatIconRegistry } from '@angular/material';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'app';
constructor(
iconRegistry: MatIconRegistry,
sanitizer: DomSanitizer
) {
iconRegistry.addSvgIcon('key',
sanitizer.bypassSecurityTrustResourceUrl('assets/icons/key.svg')
);
iconRegistry.addSvgIcon('user',
sanitizer.bypassSecurityTrustResourceUrl('assets/icons/user.svg')
);
}
}
login.component.html
<mat-form-field>
<input matInput placeholder="Username" formControlName="username">
<mat-icon matPrefix svgIcon="user"></mat-icon>
<mat-error *ngIf="username.invalid">Username is required</mat-error>
</mat-form-field>
<mat-form-field>
<input matInput type="password" placeholder="Password" formControlName="password">
<mat-icon matPrefix svgIcon="key"></mat-icon>
<mat-error *ngIf="password.invalid">Password is required</mat-error>
</mat-form-field>
答案 0 :(得分:-1)
确定可行:
步骤1)。获取所有SVG图标。
第2步):使用自定义连字创建字体。
这是一个工具,用于创建具有连字支持的自己的字体库。 https://icomoon.io
第3步:
声明自己的字体。
@font-face {
font-family: 'icomoon';
src: url('path.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
第4步: 用您自己的字体覆盖.material-icons
.material-icons {
font-family: 'MyFontFamily';
...
}
或声明自己的fontSet,以便您可以同时使用它们。
//Register to AppComponent
constructor(iconRegistry: MatIconRegistry) {
iconRegistry.registerFontClassAlias('MyFontFamily', 'MyIconClass');
}
最后一步。
<mat-icon>LigatureToDisplay</mat-icon>
或
<mat-icon fontSet="MyIconClass">LigatureOrUnicodeToDisplay</mat-icon>
这是一个小教程。
https://medium.com/@buddhiv/add-a-custom-icon-font-in-your-application-b1e07a687953