2010-07-15 4 views
0

런타임에 확인란을 동적으로 만들고 런타임에 스타일을 적용하고 있습니다. Designer는 런타임에 적용되는 컨트롤과 같은 확인란을 개발했습니다. 그는 체크 박스 컨트롤의 Label을 체크 상자 컨트롤의 텍스트를 데이터베이스의 내용으로 표시합니다. 그러나 런타임에 확인란이나 레이블의 내용을 적용하면 디자이너가 개발 한 해당 확인란 컨트롤의 뒤에 표시됩니다. Label 컨트롤을 사용하여 확인란 컨트롤에서 데이터베이스의 내용을 표시하는 방법런타임 레이블을 확인란의 내용으로 추가 wpf

친절히 제안 하시겠습니까?

감사합니다.

+0

당신은 ControlTemplate을 게시하시기 바랍니다 : 여기에

필요한 ContentPresenter에 포함 된 사용자의 CheckBox의 ControlTemplate의 예입니다. 제 추측으로는 체크 표시 뒤의 레이어에 레이블을 붙이는 것입니다. ControlTemplate을 게시하면 상당히 빨리 답변을 얻을 수 있습니다. –

답변

0

그것은 나에게 소리. ContentPresenter이 없으면 주석으로 추가 한 텍스트는 표시되지 않습니다.

<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> 
0

확인란 스타일을 검토해야합니다. 체크 상자 표시 아래에 스타일 (liyng)의 레이블 (텍스트 상자)이 있어야합니다. 여기에 chekcbox 서식 거의 바로 코드는 다음과 같습니다 당신의 디자이너가 자신의 체크 박스 템플릿에 <ContentPresenter/>을 포함하는 것을 잊었다처럼

<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> 
+0

하지만 런타임에 그의 스타일을 적용하고 있습니다. jus를 일반 체크 박스처럼 선택하거나 선택을 취소 할 수 있습니다. 레이블 내용으로 텍스트를 표시하고 싶습니다. 스타일을 제거하면 일반 체크 박스가 내용과 함께 표시됩니다. : checkbox BreakFast 레이블의 내용으로 해당 확인란 위에 아침 식사가 필요합니다. – Tarun

+0

스타일을 적용 할 때 상관 없으며 제어 템플릿이 잘못되었습니다. 체크 표시는 왼쪽에 있어야하고 레이블 내용은 다른 여유 공간에 두어야합니다. http://msdn.microsoft.com/en-us/library/ms752319(VS.85).aspx이 링크를 통해 CheckBox 스타일 및 해당 컨트롤 템플릿을 제공합니다. 해당 예제에서 controltemplate의 레이아웃을 확인하십시오. 그것은 당신의 체크 박스가 이상한 행동을하는 이유를 알아내는 데 도움이됩니다. –

관련 문제