来自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一直在咆哮“房产'内容'设置不止一次”。
有什么想法吗?
答案 0 :(得分:4)
这样的事情会更合适:
<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
<Span Foreground="Red">*</Span>Heavy Weight
</TextBlock>
答案 1 :(得分:2)
另一种方式是
<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
<Run Foreground="Red" Text="*" />
<Run Text="Heavy Weight" />
</TextBlock>
顺便说一句 大马士革的解决方案增加了更多UI元素。 使用CodeNaked的解决方案,很难对文本进行数据绑定。
答案 2 :(得分:1)
解释是你实际上一个接一个地放了两个元素。你需要将它们放入容器中。
我最近做过的带有红色星号的句子的示例代码:
<StackPanel Orientation="Horizontal" Margin="5" >
<TextBlock Text="Display name"/>
<TextBlock Text="*" Foreground="Red" FontWeight="Bold" />
<TextBlock Text=":"/>
</StackPanel>
在那里,一切都在StackPanel
中,所以属性'content'实际上会设置一次(如果你没有指定像这样的组面板,你只需要添加一个元素)