来自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一直在叫"属性'内容'不止一次设置"。
任何想法?
这样更合适:
<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
<Span Foreground="Red">*</Span>Heavy Weight
</TextBlock>
这里是一个概述,可以进入TextBlock的内容,更具体地说,在这里
<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
<Run Foreground="Red" Text="*" />
<Run Text="Heavy Weight" />
</TextBlock>
顺便说一句大马士革的解决方案增加了更多的UI元素。使用CodeNaked的解决方案,很难对文本进行数据绑定。
解释是您实际上把两个元素一个接一个地放在了一起。你需要把它们放进一个容器里。
只是我最近写的一个带有红色星号的句子的示例代码:
<StackPanel Orientation="Horizontal" Margin="5" >
<TextBlock Text="Display name"/>
<TextBlock Text="*" Foreground="Red" FontWeight="Bold" />
<TextBlock Text=":"/>
</StackPanel>
在那里,所有的东西都在StackPanel
中,所以属性'content'实际上只会设置一次(如果你不指定像这样的组面板,你只需要添加一个元素)