帮酷LOGO
  • 显示原文与译文双语对照的内容
Shared Controlz for WPF and...

  • 源代码名称:ControlzEx
  • 源代码网址:http://www.github.com/ControlzEx/ControlzEx
  • ControlzEx源代码文档
  • ControlzEx源代码下载
  • Git URL:
    git://www.github.com/ControlzEx/ControlzEx.git
  • Git Clone代码到本地:
    git clone http://www.github.com/ControlzEx/ControlzEx
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/ControlzEx/ControlzEx
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • automove_tooltip2

    Join the chat at https://gitter.im/ControlzEx/ControlzEx

    Build statusReleaseIssuesDownloadsNugetLicense

    WPF的共享Controlz和。

    由。

    Twitter JanTwitter JamesTwitter Bastian

    KeyboardNavigationEx

    KeyboardNavigationEx是一个常见聚焦问题的helper 类。 UI元素本身的焦点不是问题。 但是如果我们使用常见的聚焦方法,控件会获得焦点,但它并不得到焦点视觉样式。

    如果控件从键盘设备获得焦点或者 SystemParameters.KeyboardCues 是 true,则KeyboardNavigation类仅处理视觉样式。

    使用 KeyboardNavigationEx,你可以用两种简单的方法。

    代码后面的代码:

    publicpartialclassMainWindow : Window{
     publicMainWindow()
     {
     InitializeComponent();
     this.Loaded += (s, e) => { KeyboardNavigationEx.Focus(this.TheElementWhichShouldGetTheFocus); };
     }
    }

    或者在XAML代码中:

    <Button controlzex:KeyboardNavigationEx.AlwaysShowFocusVisual="True">Hey, I get the focus visual style on mouse click!/>

    keyboardfocusex

    AutoMove工具提示

    自动移动工具提示。更多的信息。

    <ButtonMargin="5"Padding="5"Content="Test Button 2" ToolTipService.ShowDuration="20000">
     <Button.ToolTip>
     <ToolTip local:ToolTipAssist.AutoMove="True">
     <ToolTip.Template>
     <ControlTemplate>
     <Grid>
     <BorderBackground="Gray"BorderBrush="Black"BorderThickness="1"Opacity="0.9"SnapsToDevicePixels="True"/>
     <TextBlockMargin="5"Foreground="WhiteSmoke"FontSize="22"Text="ToolTipHelper AutoMove sample" TextOptions.TextFormattingMode="Display" TextOptions.TextRenderingMode="ClearType"/>
     </Grid>
     </ControlTemplate>
     </ToolTip.Template>
     </ToolTip>
     </Button.ToolTip>
    </Button>

    automove_tooltip2

    automove_tooltip

    WindowChromeBehavior

    ControlzEx为 WPF Windows 提供定制的Chrome,并为它提供一些其他。

    大多数修复来自于 MahApps.MetroFluent.Ribbon 。

    这里描述的技术的具体实现:

    http://blogs.msdn.com/b/wpfsdk/archive/2008/09/08/custom-window-chrome-in-wpf.aspx

    它是原始微软 shell 集成库的fork 。 可以在以下位置找到当前的microsoft实现:

    http://referencesource.microsoft.com/

    PopupEx

    可以在验证错误模板或者其他类似于 MaterialDesignInXamlToolkit 或者 MahApps.Metro 中使用的自定义 Popup

    它提供了一些额外的功能:

    • 如果主机窗口大小或者位置改变,则重新定位
    • 如果主窗口最大化,则重新定位,反之亦然
    • 只有在主窗口激活时,它才是最顶端

    2015-10-11_01h03_05

    TabControlEx

    在取消选择的情况下,自定义 TabControlTabItem 内容保留在VisualTree中,因此在再次选择 TabItem 之后就不会创建噩梦了。 可见性行为可以由 ChildContentVisibility 依赖项属性设置。

    使用方法:

    <controlz:TabControlExStyle="{StaticResource {x:Type TabControl}}">
     <TabItemHeader="Lorem">
     <TextBlockText="Modern UI with MahApps.Metro"HorizontalAlignment="Center"FontSize="30"/>
     </TabItem>
     <TabItemHeader="ipsum">
     <TextBoxText="Lorem ipsum dolor sit amet, consetetur sadipscing"HorizontalAlignment="Center"Margin="5"/>
     </TabItem>
    </controlz:TabControlEx>

    PackIconBase

    帮助驱动在WPF中创建 icon 包的通用方法的基类。

    要创建新的icon 包,请按以下步骤操作:

    定义密钥( 典型的enum ):

    publicenum PackIconKind
    {
     Happy,
     Sad}

    子类 PackIconBase,添加

    • 默认样式键
    • 为每个密钥提供路径数据的工厂
    publicclassPackIcon : PackIconBase<PackIconKind>
    { 
     staticPackIcon()
     {
     DefaultStyleKeyProperty.OverrideMetadata(typeof(PackIcon), newFrameworkPropertyMetadata(typeof(PackIcon)));
     } 
     publicPackIcon() : base(CreateIconData)
     { }
     privatestaticIDictionary<PackIconKind, string> CreateIconData()
     {
     returnnewDictionary<PackIconKind, string>
     {
     {PackIconKind.Happy, "M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5M17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8C16.3,8 17,8.7 17,9.5M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23Z"},
     {PackIconKind.Sad, "M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M15.5,8C16.3,8 17,8.7 17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5M12,14C13.75,14 15.29,14.72 16.19,15.81L14.77,17.23C14.32,16.5 13.25,16 12,16C10.75,16 9.68,16.5 9.23,17.23L7.81,15.81C8.71,14.72 10.25,14 12,14Z""} }; }}

    提供默认样式( 通常在 Generic.xaml, e.g 中):

    <StyleTargetType="{x:Type local:PackIcon}">
     <SetterProperty="Height"Value="16"/>
     <SetterProperty="Width"Value="16"/>
     <SetterProperty="HorizontalAlignment"Value="Left"/>
     <SetterProperty="VerticalAlignment"Value="Top"/>
     <SetterProperty="IsTabStop"Value="False"/>
     <SetterProperty="Template">
     <Setter.Value>
     <ControlTemplateTargetType="{x:Type local:PackIcon}">
     <Viewbox>
     <CanvasWidth="24"Height="24">
     <PathData="{Binding Data, RelativeSource={RelativeSource TemplatedParent}}" 
     Fill="{TemplateBinding Foreground}"/>
     </Canvas>
     </Viewbox>
     </ControlTemplate>
     </Setter.Value>
     </Setter>
    </Style>

    最后。

    你的用户现在应该有一个简单的方法在应用程序中使用你的icon 包:

    <ns:PackIconKind="HappyIcon"/>

    许可证

    麻省理工学院许可证( MIT )

    版权所有( c ) 2015 -16 Karger,Bastian施密特,James Willock

    若要在取得该软件副本时免费授予任何人,如有下列条件的软件,请免费授予该软件的副本,并与相关的文档文件("软件") 进行许可,包括不受限制的权利,包括以下条件:

    上述版权声明和本许可声明须包括在所有的副本或实质性部分的软件。

    软件是"是",没有任何保证,表示或者隐含,包括但不限于销售,适合特定用途和 NONINFRINGEMENT 。 作者或者版权持有人在合同。侵权或者它的他与软件或者它的他用户交易的行为。




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语