- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在从事一个必须支持 6 种不同语言的项目。我已经有了一个工作实现,它使用字符串的资源文件和控件的表单本地化。实现的最后一部分涉及在程序运行时实时更改语言。我已经看到有关如何执行此操作的建议,最后我使用了 ApplyResources 方法的修改版本。一般来说,我说的是这种事情:
ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1));
CultureInfo culture = new CultureInfo("fr-FR");
resources.ApplyResources(_mybutton, _mybutton.Name, culture);
因此,按钮“_mybutton”文本将更改为法语本地化版本。这适用于我的所有表单和控件,特定的 ListView 控件除外。此 ListView 有 5 列对象类型 ColumnHeader。我正在尝试使用 ApplyResources 将列标题的文本更改为新语言。我已经在 .fr.resx 资源文件中为列标题添加了适当的法语文本,正如预期的那样,当我将表单本地化切换为法语时,设计器 View 向我显示了法语翻译版本。
更进一步,我尝试在构造函数中窗体的 InitializeComponent() 方法之前将全局线程 currentUICulture 属性更改为法语。我确认这将为 ListView 中的列标题加载正确的法语资源。
但是,当我尝试手动将区域性应用到 ColumnHeader/ListView 资源时,我的问题出现了。例如,我会说代码大致如下所示:
ComponentResourceManager resources = new ComponentResourceManager(typeof(myUserControl));
CultureInfo culture = new CultureInfo("fr-FR");
resources.ApplyResources(_myListView, _myListView.Name, culture);
resources.ApplyResources(_myColumnHeader1, _myColumnHeader1.Name, culture);
this.Refresh();
无论我尝试什么,我都无法将法语资源应用于列标题文本。我也试过:
resources.ApplyResources(_myListView.Columns[0], _myListView.Columns[0].Name, culture);
在 stackoverflow 上搜索解决方案后,我尝试了类似的方法:
var lv = (ListView)_myListView;
foreach (ColumnHeader col in lv.Columns)
{
resources.ApplyResources(col, col.Name, culture);
}
相同的效果 - 没有语言变化。我查看了 Designer.cs 代码,看看是否有任何关键差异或我遗漏的行,看起来我做对了。所有其他控件都可以正确更改语言,但我的 ListView 中的列标题拒绝动态更改文本。有没有人见过这个?我在这里做错了什么?
在最坏的情况下,我可以将列标题的文本移动到外部资源文件,然后手动设置每个列标题的文本,但我发现这很麻烦,尤其是当我必须稍后处理具有许多列的 ListView ,或者如果文本需要为每种语言提供多个值。非常感谢您的帮助!
最佳答案
我对自己的问题进行了更多研究,看起来 .NET Framework 中实际上存在一个错误,即 ColumnHeader 对象的 .Name 方法实际上并未正确返回对象名称。这就是我尝试将资源应用于该对象失败的原因。
我能够通过对 ColumnHeaders 的更改进行硬编码来解决问题。例如:
resources.ApplyResources(_myHeader, "_myHeader", culture);
基本上,您只需将对 .Name 的调用替换为名称的文字字符串。我已经测试过这个并且它有效。不幸的是,这意味着它不适合作为我用来更改所有控件的代码的一部分。我必须为每个需要更改的 ColumnHeader 对象添加一行。幸运的是,我没有使用列数可变的 ListView ,因为这可能会很棘手。
另一种选择是创建本地化的资源文件。您可能已经将它们用于消息框文本和其他字符串等内容。然后您可以在您的资源文件中添加一个条目,例如“columnHeader_myHeader”,并为每种语言设置适当的语言文本。最后,您可以使用以下方法手动更改列标题的文本:
_myHeader.Text = myResourceFileName.columnHeader_myHeader;
这将根据当前线程文化选择合适的语言。
关于C# - Windows 窗体本地化(语言)在运行时更改 - ListView 列标题不会更改语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14816735/
我附上了一个我尝试使用 html/css 实现的示例(如果您看不到图像:名字和姓氏,然后第二行是职位描述)。我希望所有文本(两行)在一个 div 中强制对齐(左和右),但我不确定这是否可能。我尝试了一
我想使两个 h1 元素成为 div 上的标题/页眉。所以每个都在特定的 div 之上。 Youtube Achievements
我想让每个 EditText 对象都有自己的标题,就像 Pure Android 指南中那样 (screenshot) 这个东西有原生支持吗?我想他们也可能会使用带有部分的 ListView ,但这对
是否可以像 UITableView headerView 一样创建 UICollectionView 标题 View ?我的意思是整个集合 View 的标题 View ,而不是每个部分的重复 View
我一直在遵循有关排版的 Google 官方 Material 设计指南 (http://www.google.com/design/spec/style/typography.html),但我发现它们
我目前正在尝试找到可以帮助我从视频文件中提取元数据或信息的 python 库,例如 [ mp4, Mkv, Avi, WebM, mpg ] 格式为例。 我主要从视频文件中提取的主要数据是 [标题、描
你好, 这是我正在尝试做的: 将每个缩略图的内容(img + 标题)居中。我的 img 必须是 span3,标题必须是 span4。 这是我的问题: 我可以获取内容中心,或者标题 float 在 im
我有一个带有导航栏的应用程序,可以从一个 View Controller 导航到下一个 View Controller 。在某些模拟器和设备上导航到下一个 View Controller 时,后退按钮
我遇到了一些非常酷的 t-sql,可以从一个 t-sql 查询中的选定行生成一个逗号分隔的列值列表: SELECT @MyList = ISNULL(@MyList,'') + Title + ',
请确保将 HTML heading 标签只用于标题。不要仅仅是为了生成粗体或的文本而使用标题。 搜索引擎使用标题为您的网页的结构和内容编制索引。 因为用户可以通过标题来快速浏览您的网页,所以用标
我正在使用 wkhtmltopdf 将 html 转换为 pdf。 我想在每个页面中添加标题,但它只显示在第一页(目录)中。 我使用的命令是 "C:\Program Files\wkhtmltopdf
如何使用 ggplot2 显示观察的方向(标题)?有没有办法调整shape=17 (三角形)以便它“指向”下一次观察? 示例代码 library(ggplot2) dat % pivot_wide
我尝试在 cocoa 应用程序中显示/隐藏标题栏。我使用以下代码: if ([window styleMask]==NSResizableWindowMask) { [wind
我有这样的 HTML 标题 http://s1.postimg.org/4ebyk3qwv/image.png 当我编写这段代码时: document.getElementById("TL85_1_
我叫麦克。谢谢你的帮助。 在Wordpress中,我们已经设计了我们的网站,以便在Facebook调试器中og数据尽可能接近youtube。尽管如此,在Facebook上共享视频的方式还是不同的。尽管
从 web 应用程序的客户端,我点击了服务器端路由,它只是第三方 API 的包装器。使用分派(dispatch),我试图让服务器端请求返回 exact header 和第三方 API 对客户端 AJA
从 web 应用程序的客户端,我点击了服务器端路由,它只是第三方 API 的包装器。使用分派(dispatch),我试图让服务器端请求返回 exact header 和第三方 API 对客户端 AJA
我是 SAPUI5 的新手,在导航、侧边栏和标题方面遇到一些问题。我想开发一个带有标题和侧边栏的应用程序。我为此使用“ToolPage”。每个页面都包含工具页,如下所示:
我最近在为客户做的项目中被介绍给Go。他们已经建立了代码库,需要进行一些更改。 我注意到所有的方法,结构等等都有一些奇怪的类似于标题的注释,如下所示: // SomeType ... type Som
我创建了一个采用整个屏幕布局的标题布局(xml 文件)... 我还创建了一个 listView 并将此 header_layout 添加到 listView 中: LayoutInflater inf
我是一名优秀的程序员,十分优秀!