【发布时间】:2013-04-27 06:02:03
【问题描述】:
我有三个用于绘制不同类型位图的 Windows 库。它们的共同点是:字体、颜色和钢笔。
我想设计一个库,我可以拥有所有标准字体、颜色和笔,这样如果我进行字体更改,它就会在所有其他库中全局更改。
例如:我有三个在位图上绘制的库,它们都使用相同的设置:
internal static readonly Font ELEVATION_FONT = new Font("Segoe UI Semibold", 7.9f),
DETAIL_BOX_FONT = new Font(FontFamily.GenericSerif, 8f, FontStyle.Regular);//"Palatino Linotype"
internal static readonly Color BACK_COLOR_SCREEN = Color.Black,
LINE_COLOR_SCREEN = Color.FromArgb(161, 161, 161),
BACK_COLOR = Color.White,
LINE_COLOR = Color.Black;
我想创建一个名为 MySoluctionNameDrawing 的库,所有其他使用这些设置在位图上绘图的库都将使用来自 MySoluctionNameDrawing 的库。
这也是为了可维护性。
MySoluctionName 只是我的解决方案的名称,但我相信你明白我的意思是为了演示目的。
任何人有任何想法,将我的所有绘图相关工具放在一个库中并从其他库访问它们而不会造成混乱,这是最简单和最干净的方法吗?
这是我想出的。
绘图 DLL
namespace AlumCloudDrawing
{
public static class DrawingOptions
{
public static readonly Font ELEVATION_FONT = new Font("Segoe UI Semibold", 7.9f),
DETAIL_BOX_FONT = new Font(FontFamily.GenericSerif, 8f, FontStyle.Regular);//"Palatino Linotype"
public static readonly Color BACK_COLOR_SCREEN = Color.Black,
LINE_COLOR_SCREEN = Color.FromArgb(161, 161, 161),
BACK_COLOR = Color.White,
LINE_COLOR = Color.Black;
}
}
使用依赖于绘图 dll 库的库中的引用。
internal static readonly Font ELEVATION_FONT = AlumCloudDrawing.DrawingOptions.ELEVATION_FONT,
DETAIL_BOX_FONT = AlumCloudDrawing.DrawingOptions.DETAIL_BOX_FONT;
internal static readonly Color BACK_COLOR_SCREEN = AlumCloudDrawing.DrawingOptions.BACK_COLOR_SCREEN,
LINE_COLOR_SCREEN = AlumCloudDrawing.DrawingOptions.LINE_COLOR_SCREEN,
BACK_COLOR = AlumCloudDrawing.DrawingOptions.BACK_COLOR,
LINE_COLOR = AlumCloudDrawing.DrawingOptions.LINE_COLOR;
【问题讨论】:
标签: c# windows static-libraries system.drawing gdi