精华内容
下载资源
问答
  • WPF 列表控件隔行变色

    千次阅读 2012-10-18 10:02:38
    不知道大家在做wpf项目的过程中有没有碰到过需要列表或者表格显示的时候隔行变色的需求 如下图 以往做web的时候还是比较容易实现的 给个table写个style就行了 下面介绍下在wpf中如何实现以上效果 废话不...

    不知道大家在做wpf项目的过程中有没有碰到过需要列表或者表格显示的时候隔行变色的需求 如下图



    以往做web的时候还是比较容易实现的 给个table写个style就行了

    下面介绍下在wpf中如何实现以上效果

    废话不多说 直接上代码

    前台代码:

    <Window x:Class="AlternateColor.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <StackPanel Margin="20">
            <TextBlock Text="Alternate color demo " FontSize="14"/>
            <Grid Width="200" HorizontalAlignment="Left">
                <ItemsControl x:Name="IC_List" AlternationCount="2">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Border x:Name="back" Height="20">
                                <TextBlock Text="{Binding ShowText}"/>
                            </Border>
                            <DataTemplate.Triggers>
                                <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                                    <Setter Property="Background" Value="#e9e9e9"  TargetName="back"></Setter>
                                </Trigger>
                                <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                                    <Setter Property="Background" Value="#d9d9d9"  TargetName="back"></Setter>
                                </Trigger>
                            </DataTemplate.Triggers>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </Grid>
        </StackPanel>
        
    </Window>

    从代码中可以看出 里面没有什么东东 就是一个Itemscontrol控件 设置alternationcount=2 就是说在控件里会 01 01 01的重复 alternationindex

    下面就是在datatemplate里面设置trigger了

    当itemscontrol.alternationindex的值为0的时候 设置name是back的border背景颜色为#e9e9e9

    当itemscontrol.alternationindex的值为1的时候 设置name是back的border背景颜色为#d9d9d9

    就这么简单

    这里如果想让列表3行3行的循环 就让alternationcount=2  trigger里面0 1 2的设置样式就行了(貌似这句有点啰嗦了 老了老了 人也变的迟钝了)

    后台代码几乎没什么用 主要做个绑定 其实完全可以忽略 在这里也贴出来 给那些完全不懂的刚入门的小朋友看下吧(免得说我的例子没发运行 呵呵)


    codebehind:


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace AlternateColor
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                List<TestClass> list = new List<TestClass>();
                list.Add(new TestClass() { ShowText="first line"});
                list.Add(new TestClass() { ShowText = "second line" });
                list.Add(new TestClass() { ShowText = "xxxxxxx" });
                list.Add(new TestClass() { ShowText = "fsdfafas" });
                list.Add(new TestClass() { ShowText = "sdafasdfasd" });
                this.IC_List.ItemsSource = list;
            }
        }
    
        public class TestClass
        {
            public string ShowText { get; set; }
        }
    }
    

    再补充下 这个例子是用itemscontrol的 用listview 或者listbox的同学可能出不来效果 

    可以使用下面的例子

     	<ListView x:Name="IC_List" AlternationCount="2">
                <ListView.ItemContainerStyle>
                    <Style TargetType="{x:Type ListViewItem}">
                        <Setter Property="Background" Value="Blue"/>
                        <Style.Triggers>
                            <Trigger Property="ListBox.AlternationIndex" Value="1">
                                <Setter Property="Background" Value="Red"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </ListView.ItemContainerStyle>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Border x:Name="back" Height="20">
                            <TextBlock Text="{Binding ShowText}"/>
                        </Border>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>




    展开全文
  • wpf webBrowser控件

    万次阅读 2018-04-12 09:28:24
    wpf webBrowser控件介绍WebBrowsers可以让我们在窗体中进行导航网页。 WebBrowser控件内部使用ie的引擎,因此使用WebBrowser我们必须安装ie浏览器(windows默认安装的)。使用直接在xmal中使用webBrowser控件...

    wpf webBrowser控件


    wpf webBrowser 的控件 坑太多了 不推荐使用, 推荐使用winform webbrowser
    在wpf中如何使用与扩展winform webbrowser,请看我的另一篇文章在wpf中使用winform webbrowser


    介绍

    WebBrowsers可以让我们在窗体中进行导航网页。
    WebBrowser控件内部使用ie的引擎,因此使用WebBrowser我们必须安装ie浏览器(windows默认安装的)。

    使用

    直接在xmal中使用webBrowser控件

    <WebBrowser x:Name="WebBrowser1" Source ="xxx.com"></WebBrowser>
    

    其中Source熟悉可以将webBrowser控件指向一个网页(也可以是本地文件的绝对路径)
    除了使用Source属性还有以下方法进行导航:

    方法 用法
    Navigate() 传入网页url WebBrowser1.Navigate(new Uri(address));
    NavigateToString 传入html页面内容WebBrowser1.NavigateToString("<html><body></body></html > ");
    GoBack() 导航到上一个文档,需要判断能否调用if (WebBrowser1.CanGoBack){WebBrowser1.GoBack();}
    GoForward 导航到下一个文档if (WebBrowser1.CanGoForward){WebBrowser1.GoForward();}
    事件 发生时间 用法
    Navigating 发生在导航到新的页面时发生,可以在这里取消导航 WebBrowser1.Navigating += (sender, args) ={args.Cancel = true;};
    Navigated 导航之后,在下载web页面之前引发 WebBrowser1.Navigated += (sender, args) =>{Console.WriteLine("ed" + args?.Uri);};
    LoadCompleteed 当web页面下载完成时引发这个事件,这时可以处理网页 WebBrowser1.LoadCompleted += (sender, args)=>{Console.WriteLine(WebBrowser1.Document);};

    问题

    • js报错
      默认情况下webBrowser用的是比较低的ie内核,这样如果访问的网页有不支持的脚本或者其他问题,就会没有办法正常运行,比如报错 javaScript错误。某些情况下使用ie可以打开的网页,在webBrowser需要管理员权限才可以正常打开,没有管理员权限也会报jabaScript错误。所以一般使用winForm的webBrowser,方便扩展,并且资料多。

      • 避免报错不弹提示框。
      WebBrowser1.Navigated += (sender, args) =>
      {
           SetSilent(wbMain, true)
      }   
      
      public static void SetSilent(WebBrowser browser, bool silent)
      {
          if (browser == null)
           throw new ArgumentNullException("browser");
      
          // get an IWebBrowser2 from the document
          IOleServiceProvider sp = browser.Document as IOleServiceProvider;
          if (sp != null)
          {
              Guid IID_IWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
              Guid IID_IWebBrowser2 = new Guid("D30C1661-CDAF-11d0-8A3E-00C04FC9E26E");
      
              object webBrowser;
              sp.QueryService(ref IID_IWebBrowserApp, ref IID_IWebBrowser2, out webBrowser);
              if (webBrowser != null)
              {
               webBrowser.GetType().InvokeMember("Silent", BindingFlags.Instance | BindingFlags.Public | BindingFlags.PutDispProperty, null, webBrowser, new object[] { silent });
              }
          }
      }
      [ComImport, Guid("6D5140C1-7436-11CE-8034-00AA006009FA"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
      private interface IOleServiceProvider
      {
          [PreserveSig]
          int QueryService([In] ref Guid guidService, [In] ref Guid riid, [MarshalAs(UnmanagedType.IDispatch)] out object ppvObject);
      }
      

      这种只是让它不出现报错窗口,不能从根本上解决。

      • 修改注册表使用新的ie内核,下面是代码:
       static void SetWebBrowserFeatures(int ieVersion)
          {
              if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
                  return;
              var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
              UInt32 ieMode = GeoEmulationModee(ieVersion);
              var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";
              Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
                  appName, ieMode, RegistryValueKind.DWord);
              Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
                  appName, 1, RegistryValueKind.DWord);
          }
      
          static UInt32 GeoEmulationModee(int browserVersion)
          {
              UInt32 mode = 11000; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode. 
              switch (browserVersion)
              {
                  case 7:
                      mode = 7000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode. 
                      break;
                  case 8:
                      mode = 8000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode. 
                      break;
                  case 9:
                      mode = 9000; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.                    
                      break;
                  case 10:
                      mode = 10000; // Internet Explorer 10.
                      break;
                  case 11:
                      mode = 11000; // Internet Explorer 11
                      break;
              }
              return mode;
          }
      

      比如你想使用最新的IE11

       SetWebBrowserFeatures(11);
      
      • 在网页中强制以ie最高级别的可用模式显示内容
      <meta http-equiv="X-UA-Compatible" content="edge" />
      
    • 内存泄漏
      Memory leak when using WPF WebBrowser control in multiple windows

      内存泄漏的解决方式

      • 不使用wpf中的 WebBrowser
      • 将WebBrowser放到子进程中,每次开关都会重新分配内存
      • 删除掉所有引用,来清理内存泄漏。关闭窗口时调用下面代码。
          public void Dispose()
          {
              webBrowser.Dispose();
      
              var window = GetWindowElement(webBrowser);
      
              if (window == null)
                  return;
      
              var field = typeof(Window).GetField("_swh", BindingFlags.NonPublic | BindingFlags.Instance);
      
              var valueSwh = field.GetValue(window);
              var valueSourceWindow = valueSwh.GetType().GetField("_sourceWindow", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(valueSwh);
              var valuekeyboardInput = valueSourceWindow.GetType().GetField("_keyboardInputSinkChildren", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(valueSourceWindow);
      
              var inputSites = valuekeyboardInput as IEnumerable<IKeyboardInputSite>;
      
              if (inputSites == null)
                  return;
      
              var currentSite = inputSites.FirstOrDefault(s => ReferenceEquals(s.Sink, webBrowser));
      
              if (currentSite != null)
                  currentSite.Unregister();
          }
      
          private static Window GetWindowElement(DependencyObject element)
          {
              while (element != null && !(element is Window))
              {
                  element = VisualTreeHelper.GetParent(element);
              }
      
              return element as Window;
          }
      
    展开全文
  • 创建WPF用户控件

    千次阅读 2014-01-05 17:19:03
    创建WPF用户控件!纠正一些新手误区!

    wpf用户自定义控件和winform创建方法类似,这里先纠正一个误区,就是有很多人也是添加,然后新建,然后是新建用户控件库,但是为什么编译好生成后Debug目录下还是只有exe文件而没有dll文件呢?这里大家要注意一下,新建要在解决方案处右键新建-新建项目,而不是在项目下新建,因为一个项目只产生一个exe的程序文件,要生成dll文件必须新建一个项目。如图:


    下面我用一个Tooltip举例新建一个用户控件:

    先新建一个wpf程序,我这里命名为:“Wpf自定义控件”。然后再新建一个项目,即:"wpf用户控件"(WPF User Control Library),我这里命名为:“WpfControlLibrary1”.


    之后在新建的项目“WpfControlLibrary1”的xaml文件里面添加如下代码:

    <UserControl x:Class="WpfControlLibrary1.UserControl1"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 mc:Ignorable="d" RenderTransformOrigin="0,0" HorizontalAlignment="Left" 
                 VerticalAlignment="Top" 
                 d:DesignHeight="300" d:DesignWidth="300" 
                 Name="用户自定义控件">
    
        <UserControl.RenderTransform>
            <TransformGroup>
                <ScaleTransform ScaleX="1" ScaleY="1"/>
                <SkewTransform AngleX="0" AngleY="0"/>
                <RotateTransform Angle="0"/>
                <TranslateTransform x:Name="UserControlToolTipXY" X="0" Y="0"/>
            </TransformGroup>
        </UserControl.RenderTransform>
    
        <Grid HorizontalAlignment="Center" VerticalAlignment="Center" 
        MinWidth="200" MinHeight="120">
            <Grid.RowDefinitions>
                <RowDefinition Height="0.333*"/>
                <RowDefinition Height="0.667*"/>
            </Grid.RowDefinitions>
            <Rectangle Fill="#FFFBFBFB" Stroke="#FF000000" RadiusX="10" RadiusY="10"
                 RenderTransformOrigin="0.139,0.012" StrokeThickness="1" Grid.RowSpan="2">
                <Rectangle.BitmapEffect>
                    <DropShadowBitmapEffect Opacity="0.8"/>
                </Rectangle.BitmapEffect>
            </Rectangle>
            <Rectangle RadiusX="10" RadiusY="10" RenderTransformOrigin="0.139,0.012" 
                StrokeThickness="10" Stroke="{x:Null}" 
        Margin="1,1,1,1" Grid.Row="0" Grid.RowSpan="2">
                <Rectangle.Fill>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0.725">
                        <GradientStop Color="#00E6D9AA" Offset="0.487"/>
                        <GradientStop Color="#FF001EFF" Offset="0.996"/>
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
            <Rectangle RadiusX="10" RadiusY="10" RenderTransformOrigin="0.493,0.485" 
                StrokeThickness="10" Stroke="{x:Null}" Grid.RowSpan="2" Margin="1,1,1,1">
                <Rectangle.Fill>
                    <LinearGradientBrush EndPoint="0.014,0.5" StartPoint="0.211,0.5">
                        <GradientStop Color="#00E6D9AA" Offset="0.513"/>
                        <GradientStop Color="#FF001EFF" Offset="0.996"/>
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
            <Rectangle RadiusX="10" RadiusY="10" RenderTransformOrigin="0.493,0.485" 
                StrokeThickness="10" Stroke="{x:Null}" Grid.RowSpan="2" Margin="1,1,1,1">
                <Rectangle.Fill>
                    <LinearGradientBrush EndPoint="0.493,0.002" StartPoint="0.493,0.33">
                        <GradientStop Color="#00E6D9AA" Offset="0.513"/>
                        <GradientStop Color="#FF001EFF" Offset="0.996"/>
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
            <Rectangle RadiusX="10" RadiusY="10" RenderTransformOrigin="0.493,0.485" 
                StrokeThickness="10" Stroke="{x:Null}" Grid.RowSpan="2" Margin="1,1,1,1">
                <Rectangle.Fill>
                    <LinearGradientBrush EndPoint="0.99,0.441" StartPoint="0.794,0.441">
                        <GradientStop Color="#00E6D9AA" Offset="0.513"/>
                        <GradientStop Color="#FF001EFF" Offset="0.996"/>
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
            <TextBlock Text="Hello!" TextWrapping="Wrap" x:Name="TextBlockToolTip" 
                RenderTransformOrigin="0.5,0.5" Grid.Row="1" HorizontalAlignment="Left" 
                    VerticalAlignment="Center" Margin="20,0,0,20" />
            <TextBlock Name="ToolTipTitle" HorizontalAlignment="Stretch" Margin="15,16,15,6.1" 
                FontSize="14" Text="用户自定义控件" d:LayoutOverrides="Height" />
        </Grid>
    </UserControl>

    效果如图:


    下面我们在cs文件中添加如下代码进行控制:

    public double UserControlToolTipX
            {
                get { return this.UserControlToolTipXY.X; }
                set { this.UserControlToolTipXY.X = value; }
            }
    
            public double UserControlToolTipY
            {
                get { return this.UserControlToolTipXY.Y; }
                set { this.UserControlToolTipXY.Y = value; }
            }
    
            public string UserControlTextBlockToolTip
            {
                get { return TextBlockToolTip.Text; }
                set { TextBlockToolTip.Text = value; }
            }
    
            public string UserControlToolTipTitle
            {
                get { return ToolTipTitle.Text; }
                set { ToolTipTitle.Text = value; }
            }

    完成后我们可以看到左侧的工具箱里面已经有我们刚才添加的自定义控件了,如图:


    之后我们点击生成里面的生成用户控件,或者快捷键shift+F6,如图:


    最后在我们的debug目录下就有刚才创建的dll文件了。



    展开全文
  • wpf自定义控件位置

    千次阅读 2016-06-30 19:59:12
    wpf自定义控件的位置与window完全不一样啊。。。。。。。。。。。真搞骚。  winform自定义控件位置通过location 如:Button button =new Button(); button.location=new point(x,y);  而wpf控件自定义位置相...

               wpf自定义控件的位置与window完全不一样啊。。。。。。。。。。。真搞骚。

            winform自定义控件位置通过location  如:Button button =new Button();  button.location=new point(x,y);

            而wpf的控件自定义位置相对于window来说较为复杂一点。首先将<Grid> 标签变成<Canvas>

           然后通过

               Button button2 = new Button();
                button2.Height = this.Height / 20;
                button2.Width = this.Width / 20;
                button2.Content = "button2";
                button2.SetValue(Canvas.LeftProperty, (double)this.Width * 10 / 16);
                button2.SetValue(Canvas.TopProperty, this.Height * 9 / 10);

                  来实现动态改变button的位置。

                wpf为button赋值背景图片的方式也较为不同。使用下列方式可以实现。
                
              button2.Background = new ImageBrush
                {
                    ImageSource = new BitmapImage(new Uri(Environment.CurrentDirectory+"//button.png"))
                };
               Environment.CurrentDirectory为程序debug目录。

     

    展开全文
  • WPF 用户控件

    千次阅读 2014-07-23 14:42:49
    WPF中的自定义控件往往结合
  • WPF 获取控件模板的控件和值

    千次阅读 2019-08-07 17:08:00
    假设我们在WPF定义控件模板时,Button在模板内部有个由Template生成的控件Textbox,它的x:name=”TextVBox1” ,它们并不冲突,但Button内部不会看到控件的细节,控件内部元素也不会去理会控件外部有什么,如果我们要...
  • WPF用户控件入门

    千次阅读 2016-10-12 15:55:32
    WPF 用户控件 UserControl
  • 目录 新建项目 用户控件和自定义控件的区别 用户控件 自定义控件 ...之前使用WPF项目使用都是VS2019,在2017版本...在WPF中,概念上来说用户自己制作的控件有两种:用户控件和自定义控件。但是这两种控件之间有什么..
  • WPF分页控件

    千次阅读 2019-06-17 19:44:11
    WPF分页控件 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:C#,WPF 作者:刘海红 撰写时间: 2019年6月12日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
  • WPF自定义控件 使用阿里巴巴图标

    千次阅读 2017-09-19 13:17:53
    上一篇介绍了 WPF自定义控件 按钮 (一),在进一步介绍WPF自定义控件 高级按钮之前,先介绍一下如何在WPF项目中使用阿里巴巴图标。 还是在上一篇项目基础上,在WPF自定义控件类库项目 Controls 文件夹下,新建一...
  • WPF自定义控件

    千次阅读 2019-08-18 09:28:15
    WPF中有一个ControlTemplate类 ControlTemplate指定控件的可视结构和可视行为。可以通过为控件指定新ControlTemplate自定义该控件的外观。 自定义控件实例: <!—自定义控件,定义自己所需的按钮模板--> ...
  • WPF自定义控件

    千次阅读 2018-07-10 12:48:21
    物尽其用,今天跟大家分享一下自己写的一个WPF控件库。大家可以看以下几张图片效果,都是可以实现的(歌曲列表等少部分不在此库中)。基本控件实现的方式可以看代码,如果有问题可以评论留言,互相交流。1. 音乐...
  • WPF AutoComplete 控件

    千次阅读 2013-11-29 20:12:51
    最近在用WPF开发系统时,需要用到一个输入文本可以显示一个下拉框,显示匹配文本的集合列表。一开始自己做了一个,用用户控件来实现,主要是用一个文本框,一个Pop控件,和一个ListBox控件。功能实现了,但是由于...
  • WPF控件是没有句柄的,不是指没有.Handle这个属性(当然也没有)。而是!WPF控件都是画出来的,不具有独立的句柄,是画!出!来!的,都是像素点而已。画布一层一层而已! 所以用关键字“WPF 控件 句柄”搜到的...
  • WPF RichTextBox控件用法

    千次阅读 2019-07-17 20:23:13
    WPF RichTextBox控件用法 1. 取得已被选中的内容: (1)使用RichTextBox.Document.Selection属性 (2)访问RichTextBox.Document.Blocks属性的“blocks”中的Text 2.WPF RictTextBox内容清空方式 txtXml.Document....
  • WPF自定义控件 按钮 (一)

    千次阅读 2017-09-19 09:58:35
    从这里开始,记录WPF自定义控件的制作方法,相比制作传统winform的自定义控件来说,WPF自定义控件做起来更加优雅,效果也更好。 从最常用的控件 Button 开始: 首先从MSDN上查看 Button 控件的默认样式和模板,...
  • Chat FX for WPF图表控件使用教程

    千次阅读 2013-03-05 17:03:18
    WPF图表控件Chart FX使用方法系列:如何绘制地图轮廓WPF图表控件Chart FX使用方法系列:如何绘制变化率WPF图表控件Chart FX使用方法系列:如何绘制可视化圆角边框WPF图表控件Chart FX使用方法系列:如何进行数据转换WPF...
  • C#_WPF_WPF用户控件

    2016-04-12 11:37:05
    新建项目》window桌面》WPF用户控件
  • WPF日期控件

    千次阅读 2018-10-22 23:59:00
    WPF里面有2个日期控件1.Calendar 2.DatePicker Calendar常用属性和控件介绍 1.DisplayDateStart 指定日期视图起始显示范围 2.DisplayDateEnd指定日期视图结尾显示范围 3.DisplayMode 指定日期视图显示日期格式 ...
  • WPF绘图控件

    千次阅读 2017-06-08 10:00:38
    标记一篇WPF画曲线工具 篇测 http://www.scottlogic.com/blog/2010/12/10/visiblox-visifire-dynamicdatadisplay-charting-performance-comparison.html 第三方WPF作图工具很全的网页 ... ...
  • Extended WPF Toolkit 控件

    2015-09-22 07:31:23
    现在公司需要用WPF做一个项目,并且使用Extended WPF Toolkit 组件,之前也没有用过这个东西,有没有相关的资料可以对Extended WPF Toolkit里面的控件的功能的说明与使用
  • /***************WPF Image控件***************/ System.Windows.Controls; class Image : FrameworkElement, IUriContext, IProvidePropertyFallbackImage.Source = BitmapSource.Create(...); /***************...
  • WPF中内容控件的用法,包括GroupBox组合框控件,Expander控件,TabControl标签控件
  • WPF自定义控件开发Sample

    千次下载 热门讨论 2014-10-15 08:35:25
    一个关于WPF自定义开发的小例子 13份WPF经典开发教程 http://download.csdn.net/album/detail/1115 C#资料合辑二[C#桌面编程入门篇] http://download.csdn.net/album/detail/957 C#资料合辑一[C#入门篇] ...
  • WPF 自定义控件创建及使用教程

    千次阅读 2020-02-02 22:11:53
    1、WPF自定义控件的创建 自定义控件比较灵活,按照教程学习比较简单 步骤一:新建WPF应用并添加WPF自定义控件,添加后会有Themes文件夹和customControl的cs 文件 2、按照cs文件中的步骤使用自定义控件 这...
  • 自定义 WPF常用控件 -页码控件

    千次阅读 2011-06-27 14:00:00
    自定义WPF常用控件(1)--页码控件 页码显示和翻页控件是使用相当广泛的一种控件,几乎是随处可见。 总结起来,此类控件,一般都具有页码显示、前跳、后跳、快速跳转等功能,某些控件可能包含页码特殊设置,当前页/...
  • WPF 切换控件界面库资源 在实际项目开发中,我们经常是使用别人开发好的界面库。但是不同界面库涉及的控件和对控件的默认样式存在偏差。为了能在不同的项目中使用多种界面库。最开始没有想过,觉得不好实现。但是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,097
精华内容 19,638
关键字:

wpf列表控件