Daily Thought WPF Front-End


This entry is part 2 of 7 in the series WPF Daily Thought

This program is being developed with Windows Presentation Foundation in C# using the Visual Studio IDE. Below is a screenshot with red comments. It’s from the Visual Studio IDE. Click on the thumbnail and it will enlarge.

Below is the XAML code. The interface all exists inside a StackPanel. There is a Label and then a Grid. I could have just put the first lable inside the Grid, but this works fine anyway.

One interesting part of the XAML code is the Buttons. We are not placing a graphic file on top of the buttons to produce the arrows. Instead we are using Shapes. Another interesting thing is the following code: PreviewKeyDown=”Window_PreviewKeyDown”. In the code behind, discussed in the post called Daily Thought C# Listing, we have code that captures the keys that the user types.

<Window x:Class="ThoughtForTheDay.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ThoughtForTheDay"
        mc:Ignorable="d"
        PreviewKeyDown="Window_PreviewKeyDown"
        Title="Thought for the Day" Height="600" Width="380" MinWidth="380">
    <StackPanel Margin="0">
        <Label Content="Thought for the Day" Margin="4" FontFamily="Ariel" FontSize="20" FontWeight="Bold" 
               FontStyle="Italic"  HorizontalAlignment="Center"/>
        <Grid Margin="10">
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <StackPanel Grid.Row="0"  Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" 
                        Margin="60,5,50,5" Width="260">
                <Button x:Name="btnBack" Click="BtnBack_Click" Margin="15,5,5,5" BorderThickness="0" Background="Transparent">
                    <Polygon Points="18,0 0,10 18,20" Fill="DarkSlateGray" />
                </Button>
                <Label x:Name="lblDate" FontSize="14" Margin="5,5,5,5.4" Width="139" VerticalAlignment="Center" 
                       HorizontalAlignment="Center">September 12, 2020</Label>
                <Button x:Name="btnForward" Click="BtnForward_Click" Margin="5,5,5,5" BorderThickness="0" Background="Transparent" >
                    <Polygon Points="0,0 18,10 0,20" Fill="DarkSlateGray" />
                </Button>
                <Label x:Name="lblDateCSharp" Visibility="Collapsed" Width="58">123</Label>
                <Label x:Name="lblDateSQLite" Visibility="Collapsed" Width="58" Content="245"/>
            </StackPanel>
            <TextBlock x:Name="txtblkThought" Grid.Row="1" FontFamily="Segoe UI" FontSize="16" TextWrapping="Wrap" Margin="5,5,5,5">For God so loved the world, that he gave his only begotten Son, that whosoever... - John 3:16</TextBlock>
            <TextBlock x:Name="txtblkExplanation" Grid.Row="2" FontSize="14" TextWrapping="Wrap" Margin="5,5,5,5">God loved the world of redeemable mankind so much that he gave his only begotten son, Jesus Christ...</TextBlock>
        </Grid>
        <StackPanel.Background>
            <ImageBrush ImageSource="background3.png" Opacity="0.7"/>
        </StackPanel.Background>
    </StackPanel>
</Window>
Series Navigation<< Daily Thought Program in WPF, SQLite and DapperDaily Thought Back-End >>