سؤال

وأنا تطوير التحكم المخصصة المستمدة من System.Windows.Controls.ContentControl. في قالب التحكم الافتراضية (الموضوعات \ generic.xaml)، وأنا استخدم عنصر الحدود التي يلتف المحتوى الفعلي.

هل تحكم مخصص بلدي تنفذ بالفعل الهامش والحشو (أي تقليص الحدود وفقا لالحشو تعيين على التحكم المخصصة) أو تفعل / يمكن أن أقرر بنفسي، حيث يتم تطبيق الهامش والحشو (أي تعيين الهامش والحشو الخصائص على عنصر الحدود إلى {TemplateBinding Margin} الخ.

ويرجع الفضل في ذلك مسبقا!

هل كانت مفيدة؟

المحلول

ويتم تنفيذ الهامش أعتقد على طول الطريق في عنصر الإطار. ومع ذلك الحشو ليست كذلك. ContentControl لديه "PaddingProperty" لكن افتراضيا أنها لا تفعل أي شيء. اساسا كنت ربط MarginProperty من المحتوى إلى الخاصية الحشو من التحكم في المحتوى.

نصائح أخرى

وأنا حل المشكلة عن طريق تحديد نمط ContentControl وربط الحشو على الهامش من ContentPresenter المحددة في القالب.

<Style TargetType="{x:Type ContentControl}">
     <Setter Property="Template">
          <Setter.Value>
               <ControlTemplate TargetType="{x:Type ContentControl}">                          
                    <ContentPresenter Margin="{TemplateBinding Padding}"/>                                
               </ControlTemplate>
          </Setter.Value>
     </Setter>
</Style>

وربما هذا يساعد الآخرين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top