C# WPF Form Binary Saat Uygulaması

Rooster

only business
Legend Member
Katılım
10 Ağu 2019
Konular
727
Mesajlar
3,205
Çözümler
314
Tepkime puanı
4,994
Konum
Milano
C# WPF Form’da farklı bir saat uygulaması örneği.
Örneğe ait ekran görüntüsü XAML kodları ve C# kodları aşağıdaki gibi olacaktır.




binaryClock

Kod:
<Window x:Class="BinClockC.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="218.492" Width="505.325" Loaded="Window_Loaded" Name="MainWin" WindowStyle="ThreeDBorderWindow" ResizeMode="NoResize">
    <Window.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Black" Offset="0"/>
            <GradientStop Color="#FF474747" Offset="1"/>
        </LinearGradientBrush>
    </Window.Background>
    <Grid x:Name="MainGrid">
        <Rectangle x:Name="H0" HorizontalAlignment="Left" Height="35" Margin="211,40,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="H1" HorizontalAlignment="Left" Height="35" Margin="254,40,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="H2" HorizontalAlignment="Left" Height="35" Margin="297,40,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="H3" HorizontalAlignment="Left" Height="35" Margin="340,40,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="H4" HorizontalAlignment="Left" Height="35" Margin="383,40,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="H5" HorizontalAlignment="Left" Height="35" Margin="426,40,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="M0" HorizontalAlignment="Left" Height="35" Margin="211,83,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="M1" HorizontalAlignment="Left" Height="35" Margin="254,83,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="M2" HorizontalAlignment="Left" Height="35" Margin="297,83,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="M3" HorizontalAlignment="Left" Height="35" Margin="340,83,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="M4" HorizontalAlignment="Left" Height="35" Margin="383,83,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="M5" HorizontalAlignment="Left" Height="35" Margin="426,83,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="S0" HorizontalAlignment="Left" Height="35" Margin="211,126,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="S1" HorizontalAlignment="Left" Height="35" Margin="254,126,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="S2" HorizontalAlignment="Left" Height="35" Margin="297,126,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="S3" HorizontalAlignment="Left" Height="35" Margin="340,126,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="S4" HorizontalAlignment="Left" Height="35" Margin="383,126,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Rectangle x:Name="S5" HorizontalAlignment="Left" Height="35" Margin="426,126,0,0" Stroke="#FF033805" VerticalAlignment="Top" Width="38" RadiusX="50" RadiusY="50">
            <Rectangle.Effect>
                <DropShadowEffect BlurRadius="10" ShadowDepth="10"/>
            </Rectangle.Effect>
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FFFFFF1B" Offset="0"/>
                    <GradientStop Color="#FF29B413" Offset="0.568"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Label Content="Saat" HorizontalAlignment="Left" Height="35" Margin="10,40,0,0" VerticalAlignment="Top" Width="98" Foreground="White"/>
        <Label Content="Dakika" HorizontalAlignment="Left" Height="35" Margin="10,83,0,0" VerticalAlignment="Top" Width="98" Foreground="White"/>
        <Label Content="Saniye" HorizontalAlignment="Left" Height="35" Margin="10,126,0,0" VerticalAlignment="Top" Width="98" Foreground="White"/>
        <Label Content="Binary Clock" HorizontalAlignment="Left" Height="40" Margin="10,0,0,0" VerticalAlignment="Top" Width="150" Foreground="#FF1BB614" FontSize="18" FontWeight="Bold"/>
        <Label Content="1" HorizontalAlignment="Left" Height="26" Margin="438,18,0,0" VerticalAlignment="Top" Width="35" Foreground="#FFCFCDCD" FontSize="10"/>
        <Label Content="2" HorizontalAlignment="Left" Height="26" Margin="396,18,0,0" VerticalAlignment="Top" Width="30" Foreground="#FFCFCDCD" FontSize="10"/>
        <Label Content="4" HorizontalAlignment="Left" Height="26" Margin="353,18,0,0" VerticalAlignment="Top" Width="30" Foreground="#FFCFCDCD" FontSize="10"/>
        <Label Content="8" HorizontalAlignment="Left" Height="26" Margin="310,18,0,0" VerticalAlignment="Top" Width="30" Foreground="#FFCFCDCD" FontSize="10"/>
        <Label Content="16" HorizontalAlignment="Left" Height="26" Margin="265,18,0,0" VerticalAlignment="Top" Width="40" Foreground="#FFCFCDCD" FontSize="10"/>
        <Label Content="32" HorizontalAlignment="Left" Height="26" Margin="220,18,0,0" VerticalAlignment="Top" Width="34" Foreground="#FFCFCDCD" FontSize="10"/>
        <Label x:Name="lbHour" Content="00" HorizontalAlignment="Left" Height="31" Margin="174,40,0,0" VerticalAlignment="Top" Width="32" Foreground="#FFFFF9F9"/>
        <Label x:Name="lbMinute" Content="00" HorizontalAlignment="Left" Height="31" Margin="174,83,0,0" VerticalAlignment="Top" Width="32" Foreground="#FFFFF9F9"/>
        <Label x:Name="lbSeconds" Content="00" HorizontalAlignment="Left" Height="31" Margin="174,126,0,0" VerticalAlignment="Top" Width="32" Foreground="#FFFFF9F9"/>
 
    </Grid>
</Window>
C# kodları;

Kod:
 private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // Sets all rectangles opacity to 0.35
            foreach (var r in LogicalTreeHelper.GetChildren(MainGrid))
            {
                if (r is Rectangle) (r as Rectangle).Fill.Opacity = 0.35;
            }
 
            // Start a continuous
 private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // Sets all rectangles opacity to 0.35
            foreach (var r in LogicalTreeHelper.GetChildren(MainGrid))
            {
                if (r is Rectangle) (r as Rectangle).Fill.Opacity = 0.35;
            }
 
            // Start a continuous thread
            Task.Factory.StartNew(() =>
            {
                // while the thread is running...
                while (true)
                {
                    // ...get the current system time
                    DateTime _now = System.DateTime.Now;
 
                    // Convert each part of the system time (i.e.: hour, minutes, seconds) to binary, filling with 0s up to a length of 6 char each
                    String _binHour = Convert.ToString(_now.Hour, 2).PadLeft(6, '0');
                    String _binMinute = Convert.ToString(_now.Minute, 2).PadLeft(6, '0');
                    String _binSeconds = Convert.ToString(_now.Second, 2).PadLeft(6, '0');
 
                    // For each digit of the binary hour representation
                    try
                    {
                        for (int i = 0; i <= _binHour.Length - 1; i++)
                        {
 
                            // Dispatcher invoke to refresh the UI, which belongs to the main thread
                            H0.Dispatcher.Invoke(() =>
                            {
                                // Update the contents of the labels which use decimal h/m/s representation
                                lbHour.Content = _now.Hour.ToString("00");
                                lbMinute.Content = _now.Minute.ToString("00");
                                lbSeconds.Content = _now.Second.ToString("00");
 
                                // Search for a rectangle which name corresponds to the _binHour current char index.
                                // Then, set its opacity to 1 if the current _binHour digit is 1, or to 0.35 otherwise
                                (MainGrid.FindName("H" + i.ToString()) as Rectangle).Fill.Opacity = _binHour.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                                (MainGrid.FindName("M" + i.ToString()) as Rectangle).Fill.Opacity = _binMinute.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                                (MainGrid.FindName("S" + i.ToString()) as Rectangle).Fill.Opacity = _binSeconds.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                            });
 
                        }
                    }
                    catch
                    { }
 
                }
                    
            });
 
        } thread
            Task.Factory.StartNew(() =>
            {
                // while the thread is running...
                while (true)
                {
                    // ...get the current system time
                    DateTime _now = System.DateTime.Now;
 
                    // Convert each part of the system time (i.e.: hour, minutes, seconds) to binary, filling with 0s up to a length of 6 char each
                    String _binHour = Convert.ToString(_now.Hour, 2).PadLeft(6, '0');
                    String _binMinute = Convert.ToString(_now.Minute, 2).PadLeft(6, '0');
                    String _binSeconds = Convert.ToString(_now.Second, 2).PadLeft(6, '0');
 
                    // For each digit of the binary hour representation
                    try
                    {
                        for (int i = 0; i <= _binHour.Length - 1; i++)
                        {
 
                            // Dispatcher invoke to refresh the UI, which belongs to the main thread
                            H0.Dispatcher.Invoke(() =>
                            {
                                // Update the contents of the labels which use decimal h/m/s representation
                                lbHour.Content = _now.Hour.ToString("00");
                                lbMinute.Content = _now.Minute.ToString("00");
                                lbSeconds.Content = _now.Second.ToString("00");
 
                                // Search for a rectangle which name corresponds to the _binHour current char index.
                                // Then, set its opacity to 1 if the current _binHour digit is 1, or to 0.35 otherwise
                                (MainGrid.FindName("H" + i.ToString()) as Rectangle).Fill.Opacity = _binHour.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                                (MainGrid.FindName("M" + i.ToString()) as Rectangle).Fill.Opacity = _binMinute.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                                (MainGrid.FindName("S" + i.ToString()) as Rectangle).Fill.Opacity = _binSeconds.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                            });
 
                        }
                    }
                    catch
                    { }
 
                }
                    
            });
 
        }
 private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // Sets all rectangles opacity to 0.35
            foreach (var r in LogicalTreeHelper.GetChildren(MainGrid))
            {
                if (r is Rectangle) (r as Rectangle).Fill.Opacity = 0.35;
            }
 
            // Start a continuous thread
            Task.Factory.StartNew(() =>
            {
                // while the thread is running...
                while (true)
                {
                    // ...get the current system time
                    DateTime _now = System.DateTime.Now;
 
                    // Convert each part of the system time (i.e.: hour, minutes, seconds) to binary, filling with 0s up to a length of 6 char each
                    String _binHour = Convert.ToString(_now.Hour, 2).PadLeft(6, '0');
                    String _binMinute = Convert.ToString(_now.Minute, 2).PadLeft(6, '0');
                    String _binSeconds = Convert.ToString(_now.Second, 2).PadLeft(6, '0');
 
                    // For each digit of the binary hour representation
                    try
                    {
                        for (int i = 0; i <= _binHour.Length - 1; i++)
                        {
 
                            // Dispatcher invoke to refresh the UI, which belongs to the main thread
                            H0.Dispatcher.Invoke(() =>
                            {
                                // Update the contents of the labels which use decimal h/m/s representation
                                lbHour.Content = _now.Hour.ToString("00");
                                lbMinute.Content = _now.Minute.ToString("00");
                                lbSeconds.Content = _now.Second.ToString("00");
 
                                // Search for a rectangle which name corresponds to the _binHour current char index.
                                // Then, set its opacity to 1 if the current _binHour digit is 1, or to 0.35 otherwise
                                (MainGrid.FindName("H" + i.ToString()) as Rectangle).Fill.Opacity = _binHour.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                                (MainGrid.FindName("M" + i.ToString()) as Rectangle).Fill.Opacity = _binMinute.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                                (MainGrid.FindName("S" + i.ToString()) as Rectangle).Fill.Opacity = _binSeconds.Substring(i, 1).CompareTo("1") == 0 ? 1 : 0.35;
                            });
 
                        }
                    }
                    catch
                    { }
 
                }
                    
            });
 
        }
 
Üst