彩票走势图

Mindscape WPF Elements使用教程:定义内置编辑器

原创|其它|编辑:郝浩|2012-12-20 10:20:50.000|阅读 369 次

概述:在Mindscape WPF Elements属性网格中包含了一个内置的编辑器,今天就来看看如何自定义内置编辑器,你可以使用Windows Presentation Foundation定义编辑器样式。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

    在Mindscape WPF Elements属性网格中包含了一个内置的编辑器,今天就来看看如何自定义内置编辑器。

定义内置编辑器

    你可以使用Windows Presentation Foundation定义编辑器样式。

选择一个内置的编辑器

    属性网格提供的内置编辑器的其中一个是由数字升降控制的,这个就比较适合于年龄属性,为了告知属性网格使用对于年龄的编辑器,以通常的方式指定一个属性编辑器,但设置编辑器模版到内置的NumericUpDown编辑器关键资源。

示例如下:

<ms:PropertyEditor PropertyName='Age' DeclaringType='{x:Type t:Person}' EditorTemplate='{StaticResource {x:Static ms:PropertyGrid.NumericUpDownEditorKey}}'>
          <ms:PropertyEditor.Style>
            <Style TargetType='{x:Type ms:NumericUpDown}'>
              <Setter Property='Minimum' Value='1'/>
              <Setter Property='Maximum' Value='150'/>
            </Style>
          </ms:PropertyEditor.Style>
        </ms:PropertyEditor>

样式化内置的编辑器

    上面的例子显示了一个简单的例子,使用属性编辑器样式来配置一个内置编辑器。在接下来的例子中,我们指定了内置选择框编辑器拥有工作许可证属性,和替换默认的复选框模板来实现与众不同的视觉效果:

<ms:PropertyEditor PropertyName='HasWorkPermit' DeclaringType='{x:Type t:Person}' EditorTemplate='{StaticResource {x:Static ms:PropertyGrid.CheckBoxEditorKey}}'>
          <ms:PropertyEditor.Style>
            <Style TargetType='{x:Type CheckBox}'>
              <Setter Property='Template'>
                <Setter.Value>
                  <ControlTemplate TargetType='{x:Type CheckBox}'>
                    <StackPanel Orientation='Horizontal'>
                      <Border x:Name='YesBorder' CornerRadius='3' BorderThickness='1' Margin='2' IsHitTestVisible='False' Padding='2' BorderBrush='Blue'>
                        <Border.Background>
                          <LinearGradientBrush StartPoint='0,0' EndPoint='0,1'>
                            <GradientStop Offset='0' Color='AliceBlue'/>
                            <GradientStop Offset='1' Color='Aquamarine'/>
                          </LinearGradientBrush>
                        </Border.Background>
                        <TextBlock x:Name='YesText' FontWeight='Bold' Foreground='Black'>YES</TextBlock>
                      </Border>
                      <Border x:Name='NoBorder' CornerRadius='3' BorderThickness='1' Margin='2' Padding='2' BorderBrush='Red'>
                        <Border.Background>
                          <LinearGradientBrush StartPoint='0,0' EndPoint='0,1'>
                            <GradientStop Offset='0' Color='LightPink'/>
                            <GradientStop Offset='1' Color='MediumVioletRed'/>
                          </LinearGradientBrush>
                        </Border.Background>
                        <TextBlock x:Name='NoText' FontWeight='Bold' Foreground='Transparent'>NO</TextBlock>
                      </Border>
                    </StackPanel>
                    <ControlTemplate.Triggers>
                      <Trigger Property='IsChecked' Value='False'>
                        <Setter TargetName='YesText' Property='Foreground' Value='Transparent'/>
                        <Setter TargetName='NoText' Property='Foreground' Value='White'/>
                        <Setter TargetName='YesBorder' Property='IsHitTestVisible' Value='True'/>
                        <Setter TargetName='NoBorder' Property='IsHitTestVisible' Value='False'/>
                      </Trigger>
                    </ControlTemplate.Triggers>
                  </ControlTemplate>
                </Setter.Value>
              </Setter>
            </Style>
          </ms:PropertyEditor.Style>
        </ms:PropertyEditor>

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP