「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.03.14
XML
カテゴリ: C#.NET


WPFでは、Ellipse(楕円)を使用して独自のプログレスバーを作成することができます。以下は、Ellipseを利用してプログレスバーを実装するサンプルコードです。


```xml

<Window x:Class="ProgressBarEllipseExample.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="Progress Bar Ellipse Example" Width="300" Height="300">

    <Grid>

        <!-- 背景の楕円 -->

        <Ellipse Width="200" Height="200" Stroke="LightGray" StrokeThickness="10" HorizontalAlignment="Center" VerticalAlignment="Center"/>

        <!-- プログレスバー用の楕円 -->

        <Ellipse x:Name="progressEllipse" Width="200" Height="200" Stroke="DodgerBlue" StrokeThickness="10" HorizontalAlignment="Center" VerticalAlignment="Center"/>

    </Grid>

</Window>

```


このサンプルコードでは、2つのEllipseを使用してプログレスバーを作成しています。1つは背景の楕円であり、もう1つはプログレスバー用の楕円です。プログレスバー用の楕円のStrokeプロパティを変更することで、進捗状況を表示します。


C#コードビハインドで、プログレスバーを操作することもできます。例えば、プログレスバーのStrokeプロパティを変更して進捗状況を変更することができます。以下はその例です。


```csharp

using System;

using System.Windows;

using System.Windows.Threading;


namespace ProgressBarEllipseExample

{

    public partial class MainWindow : Window

    {

        private DispatcherTimer timer;

        private double progress;


        public MainWindow()

        {

            InitializeComponent();

            Loaded += MainWindow_Loaded;

        }


        private void MainWindow_Loaded(object sender, RoutedEventArgs e)

        {

            // タイマーを初期化してプログレスバーを更新

            timer = new DispatcherTimer();

            timer.Interval = TimeSpan.FromMilliseconds(100);

            timer.Tick += Timer_Tick;

            timer.Start();

        }


        private void Timer_Tick(object sender, EventArgs e)

        {

            // プログレスバーの進捗を更新

            progress += 0.01;

            if (progress > 1)

                progress = 0;


            // プログレスバー用の楕円のStrokeプロパティを更新して進捗状況を反映

            progressEllipse.StrokeDashArray = new DoubleCollection() { progress * progressEllipse.Width, 10000 };

        }

    }

}

```


このコードでは、DispatcherTimerを使用して定期的にプログレスバーの進捗を更新しています。プログレスバー用の楕円のStrokeDashArrayプロパティを使用して進捗状況を反映しています。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.03.14 05:05:39


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: