是否可以在Winforms应用程序中显示SilverLight忙线指示器

本文关键字:SilverLight 显示 指示器 应用程序 Winforms 是否 | 更新日期: 2023-09-27 18:35:38

目前我正在使用一个简单的PictureBox,里面有GIF file,想知道这是否可行,以及它是否做了这两个选项之间的区别

这是我目前使用 PictureBox

的:
pictureBox1.BringToFront();
pictureBox1.Dock = DockStyle.None;
pictureBox1.Visible = true;

是否可以在Winforms应用程序中显示SilverLight忙线指示器

您可以尝试在Winforms中托管SilverLight。

虽然SilverLight旨在用于Web浏览器,但WPF更原生于桌面,WPF确实有一个类似的BusyIndicator,可以从CodePlex-Extended WPF Toolkit下载。

首先定义一个 WPF 用户控件MyBusyIndicator

<UserControl x:Class="Stackoverflow.MyBusyIndicator"
         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" 
         xmlns:xctk="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <xctk:BusyIndicator IsBusy="True" />
    </Grid>
</UserControl>

然后,您可以使用 ElementHost 在 Winform 中承载此用户控件,首先从窗体的设计器添加ElementHost,然后在窗体的构造函数中

public partial class MyForm : Form
{
    public MyForm ()
    {
        InitializeComponent();
        this.elementHost1.Child = new Stackoverflow.MyBusyIndicator();
    }
}

区别:

虽然BusyIndicator附带了一些属性来自定义指示器,但它增加了对 SL 或 WPF 的依赖关系。有了PictureBox您需要做的就是准备动画 GIF。有许多工具可以生成动画 GIF。