2

来自 ASP.NET,这个 WPF 的东西只是令人困惑。我要做的就是在标签旁加上一个红色星号来表示必填字段。玩弄东西,我发现这实际上可以解决问题:

<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Label Foreground="Red" Content="*" /><Label Content="Heavy Weight" />
</TextBlock>

由于我只是想出了这个,我不相信这是一个经验丰富的 WPF 开发人员会采取的学术路线。此外,此标记在星号和标签之间放置了大量空白。在 HTML 中,span 元素只会在其下一个兄弟元素旁边呈现。仅供参考,我尝试在标签中添加标签,但 VS2010 一直在咆哮“属性'内容'设置不止一次”。

有任何想法吗?

4

3 回答 3

4

像这样的东西会更合适:

<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Span Foreground="Red">*</Span>Heavy Weight
</TextBlock>

以下是可以进入 TextBlock 内容的概述,更具体地说,这里

于 2011-04-14T15:37:50.300 回答
3

另一种方法是

<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Run Foreground="Red" Text="*" />
    <Run Text="Heavy Weight" />
</TextBlock>

顺便说一句,大马士革的解决方案增加了更多的 UI 元素。使用 CodeNaked 的解决方案,很难对文本进行数据绑定。

于 2011-04-14T16:52:08.713 回答
1

解释是您实际上将两个元素一个接一个地放置。您需要将它们放入容器中。

只是我最近做的一个带有红色星号的句子的示例代码:

<StackPanel  Orientation="Horizontal" Margin="5" >
            <TextBlock Text="Display name"/>
            <TextBlock Text="*" Foreground="Red" FontWeight="Bold" />
            <TextBlock Text=":"/>
        </StackPanel>

在那里,一切都在 a 中StackPanel,因此属性“内容”实际上会设置一次(如果您没有指定像这个这样的组面板,则只需添加一个元素)

于 2011-04-14T15:38:00.407 回答