WP 템플릿

8046 단어 거푸집
ContentControl에는
        //  :
        //       System.Windows.Controls.ContentControl  。
        //
        //  :
        //      。  null。
        public object Content { get; set; }
        //
        //  :
        //       System.Windows.Controls.ContentControl  。
        //
        //  :
        //       System.Windows.Controls.ContentControl  。
        public DataTemplate ContentTemplate { get; set; }

Content는 컨텐트를 표현하는 데 사용되며 컨트롤 브러시 문자 등의 컨텐트가 될 수 있습니다. ContentTemplate는 DataTemplate 유형의 템플릿이며 이는 디스플레이 효과입니다.
Control과 FrameElement의 차이점은 이전에 Template 속성이 있었기 때문이다.
            <Button Content="Click me!" HorizontalAlignment="Center" VerticalAlignment="Center">
                <Button.Style>
                    <Style TargetType="Button">
                        <Setter Property="BorderBrush" Value="{StaticResource PhoneAccentBrush}" />
                        <Setter Property="BorderThickness" Value="6" />
                        <Setter Property="Background" Value="{StaticResource PhoneChromeBrush}" />
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="Button">
                                    <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="12">
                                      <ContentPresenter Content="{TemplateBinding Content}" 
                                                          ContentTemplate="{TemplateBinding ContentTemplate}"
                                                          Margin="{TemplateBinding Padding}"
                                                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border> </ControlTemplate> </Setter.Value> </Setter> </Style> </Button.Style> </Button>

ContentPresenter는 control의 두 속성인 Content 및 Content Template에 적합합니다.object 유형의 Content와 일치하며 button의 속성이 ContentPresenter의 제어를 받지 않을 때
Button의 속성은 자체적으로 익숙하기 때문에 귀속이 필요합니다.ForeGround처럼 글꼴의 속성은 바로 콘텐츠에서 함께 귀속됩니다.예를 들어 BackGround은 Button의 속성이며 컨텐트가 아닌 속성입니다.
/// <summary>
        ///  UIControl —— DumpVisualTree(listBox, 0);
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="indent"></param>
        void DumpVisualTree(DependencyObject parent, int indent)
        {
            TextBlock txtblk = new TextBlock();
            txtblk.Text = String.Format("{0}{1}", new string(' ', 4 * indent),
                                                  parent.GetType().Name);
            dumpTreeItemsControl.Items.Add(txtblk);

            int numChildren = VisualTreeHelper.GetChildrenCount(parent);

            for (int childIndex = 0; childIndex < numChildren; childIndex++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(parent, childIndex);
                DumpVisualTree(child, indent + 1);
            }
        }

좋은 웹페이지 즐겨찾기