【问题标题】:Silverlight TextBlock Text Attribute vs ContentSilverlight TextBlock 文本属性与内容
【发布时间】:2010-09-28 17:12:40
【问题描述】:

什么时候应该使用<TextBlock> 的Text 属性,什么时候应该将我的文本放入<TextBlock> 的内容中?

<TextBlock Text="Example Text" />

            vs.    

<TextBlock>Example Text</TextBlock>

【问题讨论】:

    标签: silverlight textblock


    【解决方案1】:

    前者可以绑定,后者在结合Runs时特别有用:

    <TextBlock Text="{Binding SomeProperty}"/>
    <TextBlock>
        <Run>You have </Run>
        <Run Text="{Binding Count}"/>
        <Run>items.</Run>
    </TextBlock>
    

    【讨论】:

      【解决方案2】:

      由于以前版本的 Xaml 解析器,Text 属性的使用变得很普遍,但是将文本作为内容放置更加自然,尤其是如果您有 HTML 的背景。

      事实上,许多 TextBlock 要么包含简单的短文本块,要么被绑定。将平衡 IMO 以使用 Text 属性。此外,后者可能出现的任何全球化都可能以这些文字也被绑定替换而告终。

      【讨论】:

      • AnthonyWJones 非常正确:本地化是这里的关键因素。实际上,这通常意味着所有花哨的多值插入实际上都是在其他地方完成的,并且只有一个结果文本值绑定到 Text 属性。虽然多次运行的示例对于硬编码英语来说是“可以的”,但它不适合商业应用。
      • @HiTech:Anthony 的观点当然是正确的,但我称其为“不适合商业应用”。这完全取决于全球化是否是所述应用程序的要求,而这通常不是。
      • @Kent Boogaart:我们现在开发的每个应用程序都应该支持本地化。假设其他情况有点短视。我们真的应该鼓励新手的坏习惯(例如硬接线文本)吗?抱歉,除非您有更好的理由说明“我们并不总是需要本地化”我坚持我原来的评论。
      • @HiTech:抱歉,这太荒谬了。我可以提出同样的“以防万一”的论点来证明所有浪费的努力。原因很简单:全球化和本地化需要额外的努力,所以如果您知道这些努力是不必要的,那么支持它就是在浪费自己的时间和客户的金钱。当然,您应该始终向客户明确权衡取舍。
      • @Kent Boogaart:允许本地化的可能性 与实际实现它不同。回到我的原点如果你使用运行,你不能轻易地本地化这些字符串。就这样。故事结局。我或我的客户没有额外的时间或成本。我已经本地化了许多应用程序,包括旧版应用程序,所以你不可能说服我回到硬编码文本 anywhere :)
      猜你喜欢
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 2011-05-05
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      相关资源
      最近更新 更多