2012-05-16 61 views
5

我想为WPF对象的单个内容或标头附加两个静态字符串。就像这样:附加WPF资源字符串

<MenuItem 
    Header="{x:Static properties:Resources.SEARCH_FOR_DAYS} + 
      {x:Static properties:Resources.ELLIPSES}" /> 

我已经玩过ContentStringFormat之类的东西,但无法让它接受两个资源。

回答

5
<MenuItem> 
    <MenuItem.Header> 
     <StackPanel Orientation="Horizontal"> 
      <TextBlock Text="{x:Static properties:Resources.SEARCH_FOR_DAYS}" /> 
      <TextBlock Text="{x:Static properties:Resources.ELLIPSES}" /> 
     </StackPanel> 
    </MenuItem.Header> 
</MenuItem> 

或者(更接近你的要求是什么):

<MenuItem> 
    <MenuItem.Header> 
     <MultiBinding StringFormat="{}{0}{1}"> 
      <Binding Path="{x:Static properties:Resources.SEARCH_FOR_DAYS}"/> 
      <Binding Path="{x:Static properties:Resources.ELLIPSES}"/> 
     </MultiBinding> 
    </MenuItem.Header> 
</MenuItem>  
+0

我与你的第一个反应,因为去对另一个开发者来说,它似乎是最容易理解的。谢谢! – JoeB

+0

这就是我通常使用的(特别是当我需要抛出其他UI元素时,例如小图标)。但是我会有兴趣尝试Tim的建议(+1),因为它可能更轻量级。 – Douglas

4

关闭我的头顶,你可能能够做到:

<MenuItem> 
    <MenuItem.Header> 
     <TextBlock> 
      <Run Text="{x:Static properties:Resources.SEARCH_FOR_DAYS}" /> 
      <Run Text="{x:Static properties:Resources.ELLIPSES}" /> 
     </TextBlock> 
    </MenuItem.Header> 
</MenuItem>