在checkbox wpf中添加运行时标签作为内容

时间:2010-07-15 08:10:14

标签: wpf mvvm mvvm-light

我在运行时动态创建复选框,并在运行时应用样式。 Designer开发了一个类似于控件的复选框,可以在运行时应用。然后他在该复选框控件上放置了一个Label,以显示复选框控件上的Text作为其来自Database的内容。但是当我在运行时应用复选框或标签的内容时,它会显示在设计人员开发的复选框控件的后面。如何使用Label控件在复选框控件上显示数据库中的内容。

请建议?

由于

2 个答案:

答案 0 :(得分:0)

您应该查看复选框样式。它应该是复选框标记下liyng样式的标签(文本框)。以下是chekcbox模板的正确代码:

<Grid>
   <Grid.ColumnDefinitions>
       <ColumnDefinition Width="Auto"/>
       <ColumnDefinition Width="*"/>
   </Grid.ColumnDefinitions>
   <Border Grid.Column="0">
      <!--Place your mark here-->
   </Border>
   <Border Grid.Column="1">
      <!--Place your label here-->
   </Border>
</Grid>

答案 1 :(得分:0)

听起来我的设计师忘了在他的复选框模板中添加<ContentPresenter/>。如果没有ContentPresenter,则您添加为评论的文字将永远不会显示。

以下是包含所需ContentPresenter的自定义CheckBox ControlTemplate的示例:

<ControlTemplate TargetType="{x:Type CheckBox}">
  <DockPanel>
    <Border BorderThickness="1" BorderBrush="Black">
      <Path x:Name="check" Width="10" Height="10"
            Data=".... data for checkmark in checkbox ..." />
    </Border>
    <ContentPresenter/>
  </DockPanel>
  <ControlTemplate.Triggers>
    <Trigger ... trigger for changing checkmark ... />
  </ControlTemplate.Triggers>
</ControlTemplate>