gpt4 book ai didi

c# - FontButton 字体更改不起作用

转载 作者:行者123 更新时间:2023-11-30 16:48:51 26 4
gpt4 key购买 nike

我正在使用以下代码从 FontButton 中获取选定的字体。但是,即使我选择不同的字体,字体名称也不会改变……尽管大小有效。

protected void OnFontbutton2FontSet (object sender, EventArgs e)
{
try
{
string sfont = fontbutton2.FontName;

string fontName = sfont.Substring(0,sfont.LastIndexOf(' '));

int fontSize = int.Parse(sfont.Substring(sfont.LastIndexOf(' ')+1).Trim());// I know, looks a bit ugly
cfont = new Font(fontName ,fontSize, FontStyle.Regular,System.Drawing.GraphicsUnit.Pixel);
selectedfont=new Font(fontName ,fontSize, FontStyle.Regular,System.Drawing.GraphicsUnit.Pixel);
MessageDialog md = new MessageDialog (this, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Close, fontName);
int result = md.Run ();
MessageDialog md2 = new MessageDialog (this, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Close, selectedfont.Name);
int result2 = md2.Run ();
if (wwork.IsBusy == false) {
wwork.RunWorkerAsync ();
} else {
bgdirty = true;
}
}
catch(Exception ex) {
}
}

但是新创建的字体 cfont 对象仍然是默认字体,只是字体大小改变了……字体名称没有改变。

我做错了什么?请指教。

更新:设置后打印字体变量(字体)名称的控制台输出

System.Drawing.Font myfont = new Font ("Tahoma", 50, FontStyle.Regular, GraphicsUnit.Pixel);

 Loaded assembly: /Users/me/Desktop/testproject/fonttest/fonttest/bin/Debug/fonttest.exe
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/gac/gtk-sharp/2.12.0.0__35e10195dab3c99f/gtk-sharp.dll [External]
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/gac/glib-sharp/2.12.0.0__35e10195dab3c99f/glib-sharp.dll [External]
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/gac/atk-sharp/2.12.0.0__35e10195dab3c99f/atk-sharp.dll [External]
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll [External]
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/gac/gdk-sharp/2.12.0.0__35e10195dab3c99f/gdk-sharp.dll [External]
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.dll [External]
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll [External]
Fontconfig error: Cannot load default config file
Lucida Grande

最佳答案

不要尝试使用 sfont.Substring() 修改字体名称。许多字体的名称中都会有空格。

事实上,虽然您可以使用单独的字体属性,但您应该通过 font-desc 属性获取 PangoFontDescriptor 并使用它。然后您可以复制该描述符,修改它,然后在绘图操作中使用它。

您的线程内容看起来很可疑。您不能在工作线程中使用 GTK+ 做任何事情。如果您想重绘小部件,请使用 gtk_widget_queue_draw() 或相关函数之一。

关于c# - FontButton 字体更改不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37538666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com