2012-07-24 2 views
0

사용자 컨트롤을 만들었습니다. 내 usercontrol 안에 XAML을 표시하고 싶습니다. 그런 다음 UserControl을 한게내 컨트롤에 xamlcode를 표시하는 방법

<UserControls:UserControl1 Header="Heading"> 
     <TextBlock Text="My Content" /> 
</UserControls:UserControl1> 

:

이제
<UserControl x:Class="UserControls.UserControl1" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" MinHeight="200" 
      d:DesignHeight="300" d:DesignWidth="300"> 
    <UserControl.Resources> 
     <Style TargetType="ToggleButton"> 
      <!-- ... --> 
     </Style>   
    </UserControl.Resources> 
    <StackPanel> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="Auto" /> 
      </Grid.ColumnDefinitions> 
      <TextBlock Text="{Binding Path=Header}" Grid.Column="0" /> 
      <ToggleButton Name="ToggleButton" IsChecked="True" Grid.Column="2" /> 
     </Grid> 
     <Rectangle Stroke="#c3c3c3" StrokeThickness="1" Height="1" StrokeDashArray="4 4" SnapsToDevicePixels="True" Focusable="False" /> 
     <!-- Content --> 
    </StackPanel> 
</UserControl> 

어떻게 내 컨트롤에서 XAML 코드 (예를 들어, <TextBlock Text="My Content" />)을 설정할 수 있습니까?

답변

0

발표자가 추가 된 항목에 따라 ContentPresenter 또는 ItemsPresenter를 추가하기 만하면됩니다.

스택 패널의 내용을 다른 항목 아래에 넣고 싶다면 내용 컨트롤을 배치하고 그 안에 ContentPresenter를 추가하면됩니다.

<StackPanel...> 
    <Grid ...> 
     ... 
    </Grid> 
    <Rectangle .../> 
    <!---Content here--> 
    <ContentControl> 
     <ContentPresenter/> 
    </ContentControl> 
</StackPanel> 

는 경우에만 다음 하나 개 이상의 컨텐츠를 suports 일부 컨트롤을 사용하여, 하나 개 이상의 콘텐츠 아이템을 지원하고, 대신 <ItemsPresenter/>을 사용하고 싶었다.

+0

예제 코드를 사용하면 다음과 같은 내용 만 볼 수 있습니다. http://picul.de/view/5GM code : http://paste.ubuntu.com/1109724/ – David

+0

@David 그리드 또는 그리드에 포함 된 어떤 것에 높이를 부여합니다. 사각형과 동일합니다. –

관련 문제