zoukankan      html  css  js  c++  java
  • WPF Templete & UserControl

    1.Xaml 继承Style 用属性BaseOn

    2.DataTemplete

    <Style TargetType="{x:Type ListBox}">
                            <Setter Property="ItemTemplate">
                                <Setter.Value>
                                    <DataTemplate DataType="{x:Type baseModel:FlowCheckDepRole}">
                          --摆放各个控件,形成想要的布局 <TextBlock Margin="10,5,0,0" Text="{Binding SpareName}" Height="25" Width="210" TextWrapping="Wrap"> </TextBlock> </DataTemplate> </Setter.Value> </Setter> </Style>

    3.ControlTemplete

     <Style TargetType="{x:Type Control}" x:Key="mm">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Border x:Name="Bd" BorderThickness="1" Background="White">
                                    <ScrollViewer x:Name="Sv"/>
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsMouseOver" Value="True">
                                        <Setter Property="Background" TargetName="Bd" Value="White"/>
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                            
                        </Setter.Value>
                    </Setter>
                </Style>

     4.WindowState = "Maximized" --最大化显示

    5.Popup

    <Button Background="Green"  x:Name="btn" Click="btn_xianji_Click"/>
                            <Popup x:Name="Pop_bg"  PopupAnimation="Scroll" Width="88" Height="125" PlacementTarget="{Binding ElementName=btn}"  Placement="Bottom" AllowsTransparency="False" StaysOpen="False" IsOpen="True" >
                              
                            </Popup>
    
    cs
    Pop_bg.IsOpen = true;

    6.依赖属性 静态存储,性能和控件较传统属性都是很大的提升。外部调用时可使用绑定。第二个Typeof(DependencyObject) 实现绑定数据的双向变化。还可以写成所在类名,或所属控件

    xmal

      <local:UCButtonWithRedNum  Grid.Row="2" x:Name="btnWaitCheck"
      NumText="{Binding Path=WaitCheckNum,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" 
                                      ButtonClick="WaitCheck_Click"/>

    cs

    public static readonly DependencyProperty WaitCheckNumProperty =
              DependencyProperty.Register("WaitCheckNum", typeof(string), typeof(DependencyObject), new FrameworkPropertyMetadata(OnSelectedItemsChanged
    , null)); 

    public string WaitCheckNum
    {
    get => (string)GetValue(WaitCheckNumProperty);
    set => SetValue(WaitCheckNumProperty, value);
    }

     private static void OnSelectedItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
            {
                UCMultiSelectComboBox control = (UCMultiSelectComboBox)d;
                control.SelectNodes();
                control.SetText();
            }


    7.依赖事件

    xmal 如上一个xmal片段中的事件

    ButtonClick="WaitCheck_Click"

    cs

    /// <summary>
    /// 点击事件
    /// </summary>
    public event RoutedEventHandler WaitCheckClick
    {
    add => AddHandler(WaitCheckClickEvent, value);
    remove => RemoveHandler(WaitCheckClickEvent, value);
    }

    /// <summary>
    /// 点击事件
    /// </summary>
    public static readonly RoutedEvent WaitCheckClickEvent = EventManager.RegisterRoutedEvent(
    "WaitCheckClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(UCFlowStatus));
    private void WaitCheck_Click(object sender, RoutedEventArgs e)
    {
      RoutedEventArgs newEventArgs = new RoutedEventArgs(WaitCheckClickEvent);
      RaiseEvent(newEventArgs);
    }

  • 相关阅读:
    treeview十八般武艺,js选择和绑定权限树
    开源WebOS
    公交车路线查询系统后台数据库设计
    网页信息抓取
    一步一步打造WebIM(3)——性能测试
    WebBrowser介绍——Javascript与C++互操作
    .NET文档生成工具ADB[更新至2.3]
    一步一步打造WebIM(4)——Comet的特殊之处
    在SQL Server中对视图进行增删改
    开源企业即时通讯和在线客服
  • 原文地址:https://www.cnblogs.com/mamaxiaoling/p/9812467.html
Copyright © 2011-2022 走看看