【问题标题】:WPF: Is there a sort of XAML tag that behaves like the HTML span element?WPF:是否有某种 XAML 标记的行为类似于 HTML 跨度元素?
【发布时间】:2011-04-14 15:34:31
【问题描述】:

来自 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 一直在咆哮“属性‘内容’被设置了不止一次”。

有什么想法吗?

【问题讨论】:

    标签: wpf field required


    【解决方案1】:

    这样的东西会更合适:

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

    Here 概述了可以进入 TextBlock 内容的内容,更具体地说是 here

    【讨论】:

      【解决方案2】:

      另一种方法是

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

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

      【讨论】:

      • 忘了说。 Run的Text属性只有在特定的.net版本之后才能进行数据绑定。
      【解决方案3】:

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

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

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

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

      【讨论】:

      • 这绝对是我一直在寻找的学术路线。然而,虽然更合适,但文本都聚集在我的网格单元格的左上角。当我将文本块更改为标签时,我仍然得到空格。我将其归结为填充问题。如果我让 padding = 0,则元素会尽可能向下和向左移动。我想我可以从左侧或右侧删除填充。我会检查一下。
      • 您的文本卡在左上角是正常的——您可以指定它:HorizontalAlignment="Left" VerticalAlignment="Top"。将这两个值更改为 Center,它应该为您完成工作
      猜你喜欢
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多