0

我在运行时动态创建复选框,并在运行时应用样式。Designer 开发了一个类似复选框的控件,可在运行时应用。他在该复选框控件上放置了一个标签,以将复选框控件上的文本显示为数据库中的内容。但是当我在运行时应用复选框或标签的内容时,它会显示在由设计器开发的复选框控件的背面。如何利用标签控件在复选框控件上显示数据库中的内容。

请建议?

谢谢

4

2 回答 2

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>
于 2010-07-16T06:54:14.863 回答
0

您应该检查您的复选框样式。它应该是复选框标记下的样式中的标签(文本框)。这是 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>
于 2010-07-15T08:35:43.567 回答