Pilz.UI.Telerik aktualisieren

2024-07-08 05:12:03 +00:00
parent 85a4e4c8e4
commit 575ada5ff7

@@ -144,3 +144,75 @@ Ensure you unregister your handlers from the event on Dispose or deconstructor!
RadDialogBase.DialogClosed -= RadDialogBase_DialogClosed; RadDialogBase.DialogClosed -= RadDialogBase_DialogClosed;
} }
``` ```
# Symbols
## Setup SymbolFactory
Create a new directory, we call it `Symbols` here.
![image](uploads/c2de97541c4d37acf2da07d7a8ae395e/image.png){width=188 height=275}
Ensure you add this to the project file. This will mark all SVG files within the Symbols folder as embedded resource.
```xml
<ItemGroup>
<EmbeddedResource Include="Symbols\*.svg" />
</ItemGroup>
```
Create a new enum. It may look like the following. Ensure you only add new values to the buttom as you will introduce a breaking change to your API otherwise.
```csharp
public enum GlobalSymbols
{
add,
administrative_tools,
billboard,
cancel,
delete,
edit,
home,
login,
logout,
product,
project,
remove,
save,
settings,
}
```
The class `GlobalsymbolFactory` need to inherit from `RadSymbolFactory<>`. Provide your symbols enum here. You will need to overwrite `GetImageResourceAssembly` and `GetImageRessourcePath` as this parts can't be done by the base class.
```csharp
public class GlobalSymbolFactory : RadSymbolFactory<GlobalSymbols>
{
private static readonly string? symbolsNamespace = typeof(GlobalSymbolFactory).Namespace + ".Symbols";
private static readonly string symbolsPathTemplate = "{0}.{1}.svg";
public override Assembly GetImageResourceAssembly()
{
return Assembly.GetExecutingAssembly();
}
public override string GetImageRessourcePath(GlobalSymbols svgImage)
{
return string.Format(symbolsPathTemplate, symbolsNamespace, svgImage);
}
}
```
## Access symbols
Accessing symbols esaily via an instance of your SymbolFactory implementation. You can either provide a static instance in `GlobalSymbolFactory` or create a new instance wherever you need it. Access via `GetSvgImage` or `GetImage`, decide wheneer you can use an `RadSvgImage` or need an `Image`.
```csharp
// Static instance in GlobalSymbolFactory
public static IRadSymbolFactory<GlobalSymbols> Instance { get; } = new GlobalSymbolFactory();
var img = GlobalSymbolFactory.Instance.GetSvgImage(GlobalSymbols.billboard, SvgImageSize.Small);
// Instance on-demand
var symbols = new GlobalSymbolFactory();
var img = symbols.GetSvgImage(GlobalSymbols.billboard, SvgImageSize.Small);
```