• 用户控件


      创建用户控件可以在项目里右键添加用户控件,用户控件可以解决系统没有这个控件自己可以特定制作这个控件供自己项目中使用 或者 如果很多地方用到某到模块,就可以把这个模块封装成用户控件供多出调用

      下面创建一个用户控件:

    <UserControl x:Class="用户控件.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" 
                 d:DesignHeight="124" d:DesignWidth="109" >
        <Grid Height="128" Width="113">
            <Border BorderThickness="2" Margin="0,0,1,1">
                <Border.BorderBrush>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                        <GradientStop Offset="0" Color="#aaa"/>
                        <GradientStop Offset="1" Color="#222"/>
                    </LinearGradientBrush>
                </Border.BorderBrush>
                <Canvas PreviewMouseLeftButtonDown="Canvas_PreviewMouseLeftButtonDown" Height="113" Width="96">
                    <Image x:Name="imageCar" Width="96"  Height="113"/>
                    <Image Height="24" HorizontalAlignment="Left" Margin="91,147,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="29"  Canvas.Left="-24" Canvas.Top="-59" Visibility="Hidden"  />
                </Canvas>
            </Border>       
        </Grid>
    </UserControl>

    将图片封装到一个带有边框的Border中

    后台代码:

    /// <summary>
        /// UserControl1.xaml 的交互逻辑
        /// </summary>
        public partial class UserControl1 : UserControl
        {
            public UserControl1()
            {
                InitializeComponent();
                this.ImagePath = "/Resources/奔驰.png";
                this.image1.Source = new BitmapImage(new Uri(@"/Resources/打勾.jpg", UriKind.Relative));
            }
            
            private void Canvas_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                if (image1.Visibility == Visibility.Visible)
                {
                    image1.Visibility = Visibility.Hidden;
                }
                else
                {
                    image1.Visibility = Visibility.Visible;
                }
            }
    
            public string ImagePath { get; set; }
    
            public void setImage()
            {
                //imageCar.Source = ImagePath
                this.imageCar.Source = new BitmapImage(new Uri(@ImagePath,UriKind.Relative)); 
            }
        }

    添加到Window界面上

    Window x:Class="用户控件.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="450" Width="616"
            xmlns:my="clr-namespace:用户控件">
        <Grid>
            <my:UserControl1 HorizontalAlignment="Left" Margin="22,30,0,0" x:Name="userControl11" VerticalAlignment="Top"/>
        </Grid>
    </Window>
    /// <summary>
        /// UserControl1.xaml 的交互逻辑
        /// </summary>
        public partial class UserControl1 : UserControl
        {
            public UserControl1()
            {
                InitializeComponent();
                this.ImagePath = "/Resources/奔驰.png";
            }
            
            private void Canvas_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                if (image1.Visibility == Visibility.Visible)
                {
                    image1.Visibility = Visibility.Hidden;
                }
                else
                {
                    image1.Visibility = Visibility.Visible;
                }
            }
    
            public string ImagePath { get; set; }
    
            public void setImage()
            {
                //imageCar.Source = ImagePath
                this.imageCar.Source = new BitmapImage(new Uri(@ImagePath,UriKind.Relative)); 
            }
        }
  • 相关阅读:
    C# 本质论 第三章 操作符和控制流
    LeetCode Online Judge 1. Two Sum
    C# 本质论 第二章 数据类型
    C# 本质论 第一章 C#概述
    TMDS代码
    `define `ifdef `elseif的巧妙使用
    加法器(行波与超前、全加与半加)
    DCI技术
    **标识符
    电容放置问题
  • 原文地址:https://www.cnblogs.com/hdsong/p/5074332.html
Copyright © 2020-2023  润新知