2012-05-16 80 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>