private/OTP-UI.xaml
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="OTP Codes" Height="500" Width="1000" WindowStartupLocation="CenterScreen"> <Window.Resources> <Style TargetType="DataGrid"> <Setter Property="FontSize" Value="16"/> <Setter Property="EnableRowVirtualization" Value="True"/> <Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True"/> <Setter Property="VirtualizingStackPanel.VirtualizationMode" Value="Recycling"/> <Setter Property="ScrollViewer.IsDeferredScrollingEnabled" Value="True"/> </Style> <Style TargetType="TextBlock"> <Setter Property="FontSize" Value="16"/> </Style> <Style TargetType="Button"> <Setter Property="FontSize" Value="16"/> <Setter Property="Padding" Value="15,5"/> <Setter Property="Margin" Value="5"/> </Style> </Window.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Margin="10,10" FontSize="24" FontWeight="Bold"> One-Time Password Codes </TextBlock> <DataGrid Grid.Row="1" Name="CodesGrid" Margin="10" AutoGenerateColumns="False" IsReadOnly="True" EnableRowVirtualization="True" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling" ScrollViewer.IsDeferredScrollingEnabled="True"> <DataGrid.Columns> <DataGridTextColumn Header="Tag" Binding="{Binding TagDisplay}" Width="150"> <DataGridTextColumn.ElementStyle> <Style TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}"> <Style.Triggers> <DataTrigger Binding="{Binding TagDisplay}" Value=""> <Setter Property="Visibility" Value="Collapsed"/> </DataTrigger> </Style.Triggers> </Style> </DataGridTextColumn.ElementStyle> </DataGridTextColumn> <DataGridTextColumn Header="Code" Binding="{Binding Code}" Width="100"> <DataGridTextColumn.ElementStyle> <Style TargetType="TextBlock"> <Setter Property="FontWeight" Value="Bold"/> <Setter Property="FontSize" Value="16"/> <Setter Property="Padding" Value="4,0,0,0"/> </Style> </DataGridTextColumn.ElementStyle> </DataGridTextColumn> <DataGridTextColumn Header="Algorithm" Binding="{Binding Algorithm}" Width="100"/> <DataGridTextColumn Header="Hash" Binding="{Binding HashAlgorithm}" Width="100"/> <DataGridTextColumn Header="Seed" Binding="{Binding Seed}" Width="*"/> </DataGrid.Columns> </DataGrid> <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="10,10"> <Button Name="RefreshButton" Content="Refresh Codes"/> <TextBlock Text="Next update in: " VerticalAlignment="Center" Margin="15,0"/> <TextBlock Name="TimerText" Text="30" VerticalAlignment="Center" FontWeight="Bold"/> <TextBlock Text=" seconds" VerticalAlignment="Center"/> </StackPanel> </Grid> </Window> |