XAML 追加WPF资源字符串

z4iuyo4d  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(143)

我想为WPF对象的单个内容或标头追加两个静态字符串。

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

我尝试过ContentStringFormat之类的格式,但无法让它接受两个资源。

qf9go6mv

qf9go6mv1#

<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>
zengzsys

zengzsys2#

在我的脑海里,你也许可以做:

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

vxf3dgd43#

在以下代码中禁用MenuItem时:

<MenuItem IsEnabled="False">
    <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 IsEnabled="False">
    <MenuItem.Header>
        <StackPanel Orientation="Horizontal">
            <Label Padding="0" Content="{x:Static properties:Resources.SEARCH_FOR_DAYS}" />
            <Label Padding="0" Content="{x:Static properties:Resources.ELLIPSES}" />
        </StackPanel>
    </MenuItem.Header>
</MenuItem>

“启用”和“禁用”对文本颜色的作用与预期相同

相关问题