Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何处理WinForm应用程序中不同字体大小/本地化文本的控件大小?_C#_Winforms_Layout_Autosize - Fatal编程技术网

C# 如何处理WinForm应用程序中不同字体大小/本地化文本的控件大小?

C# 如何处理WinForm应用程序中不同字体大小/本地化文本的控件大小?,c#,winforms,layout,autosize,C#,Winforms,Layout,Autosize,我在WinForm应用程序中尝试支持以下任何一项时也面临同样的问题: 允许用户在所有备忘录/标签/按钮/编辑/组合/网格等控件中更改字体和字体大小的选项 本地化,其中文本的长度/大小在不同语言中发生变化(并且需要更大的字体大小) “Windows颜色和外观”设置,用于更改字体和字体大小 问题是控件的大小/位置/布局会因为大小的变化而变得混乱。要么控件无法显示其所有内容,要么自动调整大小的控件将与其他控件重叠,要么被父控件的绑定截断,要么出现换行字问题,等等 这些控件通常是一些备忘录/标签/按钮/

我在WinForm应用程序中尝试支持以下任何一项时也面临同样的问题:

  • 允许用户在所有备忘录/标签/按钮/编辑/组合/网格等控件中更改字体和字体大小的选项
  • 本地化,其中文本的长度/大小在不同语言中发生变化(并且需要更大的字体大小)
  • “Windows颜色和外观”设置,用于更改字体和字体大小
  • 问题是控件的大小/位置/布局会因为大小的变化而变得混乱。要么控件无法显示其所有内容,要么自动调整大小的控件将与其他控件重叠,要么被父控件的绑定截断,要么出现换行字问题,等等

    这些控件通常是一些备忘录/标签/按钮/编辑/组合/网格/.etc,它们简单地放在面板/组框/选项卡/.etc上,或者是嵌套在其他容器控件中的这些控件的组合。我想知道是否有一些简单、标准、不那么痛苦的方法来处理这个问题。(另外,想知道是否有一些简单或标准的方法可以让控件自动选择字体设置,而不是手动指定字体。)


    提前感谢。

    据我所知,您希望更改所有控件的字体大小,并担心这些更改会破坏您的布局


    首先,您需要弄清楚如何处理较大/较长的文本。您可以包裹字符串或修剪尾部,也可以使布局更大,同时保持控件的比例不变。除此之外,我认为没有任何简单的解决方案可以处理对字体大小/语言的任意更改。

    我建议将控件放置在专门设计的容器中……例如
    TableLayoutPanel
    。如果布局复杂,甚至可能是嵌套面板。有了它,您可以允许大多数东西自动调整大小,并根据总宽度/高度的百分比控制位置。

    winforms不依赖于分辨率,也不支持主题化。这就是为什么创建WPF来取代它。如果您需要这些功能,我强烈建议您使用当前相关的.Net Windows UI技术。