在我们的Silverlight 2项目,我们已经创建了一个附加属性执行上的即时翻译文本各种用户控件的属性。为了实现这一点,当属性设置我们勾FrameworkElement的Loaded事件。当事件触发时,我们把现有文本属性值,并与翻译的文本替换属性值之前对它进行一些简单的字符串替换。然而,这导致控制正在呈现与未翻译的文本,则该文本被迅速与翻译版本替换。

是否有我们可以钩在呈示控制之前,将触发一个备用事件?

有帮助吗?

解决方案

我已经改变了我的代码,以便它现在只要在附加属性的setter被称为进行翻译。有没有需要等待FrameworkElement到加载完成,我可以改变元素呈现很久以前的Text属性。

我使用Loaded事件初始想法是通过仅平移是那样的屏幕上可见的控制,以减少该应用程序的启动时间。事实证明,我复制一些运行时所执行的工作,因为运行时不会调用属性setter,直到它需要无妨。

其他提示

我不能完全肯定这一点,但你可以使用LayoutUpdated事件。当控制被调整,将火等(你可以采取措施,以确保您的代码只执行一次。)

我知道它似乎并不像“正确”的事件为这个无奈的Silverlight有点让你站在那里,拿着它,当它涉及到的事件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top