Powershell GUI fronted (WPF) to run categorized console scripts

⌈⌋ branch:  ClickyColoury


Check-in [9461359e7d]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Added two more themes, less preset colors in main template.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 9461359e7d6ef8354a4c528afd23b76091561eef
User & Date: mario 2018-04-10 20:52:03
Context
2018-04-11
15:37
Fix [adsisearcher] ldap expression to omit disabled users; also prevent multiple rows from being returned again (-only 1). Readd |Out-String prior default |Out-Gui pipe; because objects/lists in $str might not transfer over Dispatch-GUI after all. check-in: 3ee7c5a5fd user: mario tags: trunk
2018-04-10
20:52
Added two more themes, less preset colors in main template. check-in: 9461359e7d user: mario tags: trunk
19:38
Enabled clipboard restore by just using text version. Safeguard for $null values in Out-Gui pipe. check-in: 134dc2ae66 user: mario tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to NEWS.

1











2
3
4
5
6
7
8












0.8.0 (2017-09-22)
 * First public (stripped down) release
 * Main code condensed into modules/ directory.
 * Global configuration hash is now populated in starter.ps1
 * Restructured tools/ again into category-nested subfolders.
 * Implemented HTML clipboard kludge (collect alongside Out-Gui).
 * Sigma version for init_intro.ps1 instead of main version.

>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

0.9.0 (2018-04-10)
 * Ported to Powershell 5.0
 * Toolblocks are just buttons again, in a TreeView;
   for performance reasons (became too slow with 200 scripts)
 * Output pane is a FlowDocument now, allows -XAML passing
 * Extra parameters now bring up a form box, new vars: meta field
 * New darker theme
 * Splash screen added
 * Introducing cross-runspace events now (albeit Cancel non-functional,
   simple $GUI.tasks queue still used)

0.8.0 (2017-09-22)
 * First public (stripped down) release
 * Main code condensed into modules/ directory.
 * Global configuration hash is now populated in starter.ps1
 * Restructured tools/ again into category-nested subfolders.
 * Implemented HTML clipboard kludge (collect alongside Out-Gui).
 * Sigma version for init_intro.ps1 instead of main version.

Changes to modules/kbt5.xaml.

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Window.Resources>

  <!-- Widgets --> 
  <DockPanel Background="#77797c">

  <Menu DockPanel.Dock="Top" Background="#FF344055" Foreground="#FFCDCDCD">
     <MenuItem Header="CMD" x:Name="Menu_CMD" ToolTip="Computer/command-line tools">
       <MenuItem Header="OnBehalf" x:Name="Menu_ONBEHALF" ToolTip="OnBehalf remote execution" />
     </MenuItem>
     <MenuItem Header="User" x:Name="Menu_USER" ToolTip="Account/Users" />
     <MenuItem Header="PowerShell" x:Name="Menu_POWERSHELL" ToolTip="Powershell scripts">
       <MenuItem Header="Bulk" x:Name="Menu_BULK"><MenuItem.Icon><Image Source="e:/img/csv.png" Width="18" Height="18"/></MenuItem.Icon></MenuItem>
     </MenuItem>







|







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Window.Resources>

  <!-- Widgets --> 
  <DockPanel Background="#77797c">

  <Menu DockPanel.Dock="Top">
     <MenuItem Header="CMD" x:Name="Menu_CMD" ToolTip="Computer/command-line tools">
       <MenuItem Header="OnBehalf" x:Name="Menu_ONBEHALF" ToolTip="OnBehalf remote execution" />
     </MenuItem>
     <MenuItem Header="User" x:Name="Menu_USER" ToolTip="Account/Users" />
     <MenuItem Header="PowerShell" x:Name="Menu_POWERSHELL" ToolTip="Powershell scripts">
       <MenuItem Header="Bulk" x:Name="Menu_BULK"><MenuItem.Icon><Image Source="e:/img/csv.png" Width="18" Height="18"/></MenuItem.Icon></MenuItem>
     </MenuItem>
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
        <MenuItem Header="Update" x:Name="Menu_UPDATE"><MenuItem.Icon><Image Source="e:/img/icon.log.png"/></MenuItem.Icon></MenuItem>
        <!--MenuItem Header="TEST scripts" x:Name="Menu_TEST"><MenuItem.Icon><Image Source="e:/img/icon.godzilla.png"/></MenuItem.Icon></MenuItem-->
     </MenuItem>
     <MenuItem Header="✐" x:Name="Menu_EDIT" ToolTip="Script editing" />
     <MenuItem Header="䷰"  HorizontalAlignment="Right" x:Name="Menu_DOCS" ToolTip="docs" />
  </Menu>

  <DockPanel x:Name="Ribbon" DockPanel.Dock="Top" Height="80" Style="{StaticResource RibbonGradient}" Background="#FF181B2B">

    <!-- Computer -->
    <Border Style="{StaticResource RibbonBorder}" Width="170" DockPanel.Dock="Left">
      <DockPanel>
        <!-- Btn -->
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" VerticalAlignment="Bottom" FontWeight="Bold" Foreground="#FFCDCDCD" Content="Machine/Hostname"/>
        <Button DockPanel.Dock="Left" x:Name="BtnComputer" Width="64" Height="64" Style="{StaticResource ActionButton}" ToolTip="Computer (←clipbrd)"><Image Source="e:/img/computer.png" Width="64" Height="64" /></Button>
        <DockPanel>
          <!-- Clear/Copy/Ping/ToUser -->
          <WrapPanel DockPanel.Dock="Top">
            <Button x:Name="BtnComputerClr" Style="{StaticResource ActionButton}" ToolTip="Clear" Margin="0,0,5,0"><Image Source="e:/img/clear.png" Width="16" Height="16" Opacity="0.2"  /></Button>
            <Button x:Name="BtnComputerCpy" Style="{StaticResource ActionButton}" ToolTip="Copy" Margin="0,0,10,0"><Image Source="e:/img/copy.png" Width="16" Height="16" Opacity="0.5" /></Button>
            <Button x:Name="BtnComputerPng" Style="{StaticResource ActionButton}" ToolTip="ping" Margin="0,0,5,0"><Image Source="e:/img/ping.png" Width="16" Height="16" Opacity="0.4" /></Button>
            <Button x:Name="BtnComputerUsr" Style="{StaticResource ActionButton}" ToolTip="Get current user →"><Image Source="e:/img/to-user.png" Width="18" Height="16" Opacity="0.8" /></Button>
          </WrapPanel>
          <!-- Input -->
          <ComboBox x:Name="machine" IsEditable="True" Height="22" Width="90" FontSize="13" FontWeight="Bold">localhost</ComboBox>
        </DockPanel>
      </DockPanel>
    </Border>

    <!-- User -->
    <Border Style="{StaticResource RibbonBorder}" Width="175" DockPanel.Dock="Left">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Foreground="#FFCDCDCD" Content="User target"/>
        <Button DockPanel.Dock="Left" x:Name="BtnUsername" Style="{StaticResource ActionButton}" ToolTip="User (←clipbrd)"><Image Source="e:/img/user.png" /></Button>
        <DockPanel>
          <!-- Clear/Copy/ToComputer -->
          <WrapPanel DockPanel.Dock="Top">
            <Button x:Name="BtnUsernameClr" Style="{StaticResource ActionButton}" ToolTip="Clear" Margin="0,0,5,0"><Image Source="e:/img/clear.png" Width="16" Height="16" Opacity="0.2"  /></Button>
            <Button x:Name="BtnUsernameCpy" Style="{StaticResource ActionButton}" ToolTip="Copy" Margin="0,0,50,0"><Image Source="e:/img/copy.png" Width="16" Height="16" Opacity="0.5" /></Button>
            <Button x:Name="BtnUsernameCom" Style="{StaticResource ActionButton}" ToolTip="← To primary computer"><Image Source="e:/img/to-user.png" Width="18" Height="16" Opacity="0.2" /></Button>
          </WrapPanel>
          <!-- Input -->
          <ComboBox x:Name="username" IsEditable="True" Height="22" Width="120" FontSize="13" FontWeight="Bold" />
        </DockPanel>
      </DockPanel>
    </Border> 

    <!-- Shortcuts -->
    <Border Style="{StaticResource RibbonBorder}" Width="85" DockPanel.Dock="Left">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Foreground="#FFCDCDCD" Content="Shortcuts"/>
        <WrapPanel DockPanel.Dock="Top" x:Name="Shortcuts" Width="82" Height="80" />
      </DockPanel>
    </Border> 

    <!-- Cancel -->
    <Border Style="{StaticResource RibbonBorder}" Width="45" DockPanel.Dock="Left">
      <DockPanel>
        <Button x:Name="Cancel" DockPanel.Dock="Bottom" HorizontalAlignment="Center"
        FontSize="32" Foreground="Red" Background="#99663322" Height="50" Width="30" Content="X"/>
      </DockPanel>
    </Border> 

    <!-- Unicode -->
    <Border Style="{StaticResource RibbonBorderGreen}" Width="140" DockPanel.Dock="Left" Padding="4,2,4,0">
      <DockPanel>
        <!--Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Foreground="#ff223366" Content="Unicode"/-->
        <!--ScrollViewer DockPanel.Dock="Top"-->
        <WrapPanel DockPanel.Dock="Top" x:Name="UnicodeClip" Width="140" Height="66">
          <Button Style="{StaticResource ActionButton}" Content="❏" />
          <Button Style="{StaticResource ActionButton}" Content="✔" />
          <Button Style="{StaticResource ActionButton}" Content="✘" />
          <Button Style="{StaticResource ActionButton}" Content="➜" />
          <Button Style="{StaticResource ActionButton}" Content="➩" />







|





|


















|

















|















|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
        <MenuItem Header="Update" x:Name="Menu_UPDATE"><MenuItem.Icon><Image Source="e:/img/icon.log.png"/></MenuItem.Icon></MenuItem>
        <!--MenuItem Header="TEST scripts" x:Name="Menu_TEST"><MenuItem.Icon><Image Source="e:/img/icon.godzilla.png"/></MenuItem.Icon></MenuItem-->
     </MenuItem>
     <MenuItem Header="✐" x:Name="Menu_EDIT" ToolTip="Script editing" />
     <MenuItem Header="䷰"  HorizontalAlignment="Right" x:Name="Menu_DOCS" ToolTip="docs" />
  </Menu>

  <DockPanel x:Name="Ribbon" DockPanel.Dock="Top" Height="80" Style="{StaticResource RibbonGradient}">

    <!-- Computer -->
    <Border Style="{StaticResource RibbonBorder}" Width="170" DockPanel.Dock="Left">
      <DockPanel>
        <!-- Btn -->
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" VerticalAlignment="Bottom" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="Machine/Hostname"/>
        <Button DockPanel.Dock="Left" x:Name="BtnComputer" Width="64" Height="64" Style="{StaticResource ActionButton}" ToolTip="Computer (←clipbrd)"><Image Source="e:/img/computer.png" Width="64" Height="64" /></Button>
        <DockPanel>
          <!-- Clear/Copy/Ping/ToUser -->
          <WrapPanel DockPanel.Dock="Top">
            <Button x:Name="BtnComputerClr" Style="{StaticResource ActionButton}" ToolTip="Clear" Margin="0,0,5,0"><Image Source="e:/img/clear.png" Width="16" Height="16" Opacity="0.2"  /></Button>
            <Button x:Name="BtnComputerCpy" Style="{StaticResource ActionButton}" ToolTip="Copy" Margin="0,0,10,0"><Image Source="e:/img/copy.png" Width="16" Height="16" Opacity="0.5" /></Button>
            <Button x:Name="BtnComputerPng" Style="{StaticResource ActionButton}" ToolTip="ping" Margin="0,0,5,0"><Image Source="e:/img/ping.png" Width="16" Height="16" Opacity="0.4" /></Button>
            <Button x:Name="BtnComputerUsr" Style="{StaticResource ActionButton}" ToolTip="Get current user →"><Image Source="e:/img/to-user.png" Width="18" Height="16" Opacity="0.8" /></Button>
          </WrapPanel>
          <!-- Input -->
          <ComboBox x:Name="machine" IsEditable="True" Height="22" Width="90" FontSize="13" FontWeight="Bold">localhost</ComboBox>
        </DockPanel>
      </DockPanel>
    </Border>

    <!-- User -->
    <Border Style="{StaticResource RibbonBorder}" Width="175" DockPanel.Dock="Left">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="User target"/>
        <Button DockPanel.Dock="Left" x:Name="BtnUsername" Style="{StaticResource ActionButton}" ToolTip="User (←clipbrd)"><Image Source="e:/img/user.png" /></Button>
        <DockPanel>
          <!-- Clear/Copy/ToComputer -->
          <WrapPanel DockPanel.Dock="Top">
            <Button x:Name="BtnUsernameClr" Style="{StaticResource ActionButton}" ToolTip="Clear" Margin="0,0,5,0"><Image Source="e:/img/clear.png" Width="16" Height="16" Opacity="0.2"  /></Button>
            <Button x:Name="BtnUsernameCpy" Style="{StaticResource ActionButton}" ToolTip="Copy" Margin="0,0,50,0"><Image Source="e:/img/copy.png" Width="16" Height="16" Opacity="0.5" /></Button>
            <Button x:Name="BtnUsernameCom" Style="{StaticResource ActionButton}" ToolTip="← To primary computer"><Image Source="e:/img/to-user.png" Width="18" Height="16" Opacity="0.2" /></Button>
          </WrapPanel>
          <!-- Input -->
          <ComboBox x:Name="username" IsEditable="True" Height="22" Width="120" FontSize="13" FontWeight="Bold" />
        </DockPanel>
      </DockPanel>
    </Border> 

    <!-- Shortcuts -->
    <Border Style="{StaticResource RibbonBorder}" Width="85" DockPanel.Dock="Left">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="Shortcuts"/>
        <WrapPanel DockPanel.Dock="Top" x:Name="Shortcuts" Width="82" Height="80" />
      </DockPanel>
    </Border> 

    <!-- Cancel -->
    <Border Style="{StaticResource RibbonBorder}" Width="45" DockPanel.Dock="Left">
      <DockPanel>
        <Button x:Name="Cancel" DockPanel.Dock="Bottom" HorizontalAlignment="Center"
        FontSize="32" Foreground="Red" Background="#99663322" Height="50" Width="30" Content="X"/>
      </DockPanel>
    </Border> 

    <!-- Unicode -->
    <Border Style="{StaticResource RibbonBorderGreen}" Width="140" DockPanel.Dock="Left" Padding="4,2,4,0">
      <DockPanel>
        <!--Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="Unicode"/-->
        <!--ScrollViewer DockPanel.Dock="Top"-->
        <WrapPanel DockPanel.Dock="Top" x:Name="UnicodeClip" Width="140" Height="66">
          <Button Style="{StaticResource ActionButton}" Content="❏" />
          <Button Style="{StaticResource ActionButton}" Content="✔" />
          <Button Style="{StaticResource ActionButton}" Content="✘" />
          <Button Style="{StaticResource ActionButton}" Content="➜" />
          <Button Style="{StaticResource ActionButton}" Content="➩" />
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
        <!--/ScrollViewer-->
      </DockPanel>
    </Border> 

    <!-- Clipboard -->
    <Border Style="{StaticResource RibbonBorderGreen}" Width="125" DockPanel.Dock="Right">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Foreground="#FFCDCDCD" Content="Clipboard"/>
        <Button DockPanel.Dock="Left" x:Name="BtnClipText" ToolTip="Copy (text)" Width="48" Height="48" Style="{StaticResource ActionButton}"><Image Source="e:/img/clipboard.png" /></Button>
        <Button DockPanel.Dock="Left" x:Name="BtnClipHtml" ToolTip="Copy (colored)" Width="48" Height="48" Style="{StaticResource ActionButton}"><Image Source="e:/img/html.png" /></Button>
        <Button DockPanel.Dock="Top" x:Name="BtnClipFree" ToolTip="Clear" Width="24" Height="20" Style="{StaticResource ActionButton}"><Image Source="e:/img/sweep.png" /></Button>
        <Button DockPanel.Dock="Bottom" x:Name="BtnClipSwap" ToolTip="Last buffer" Width="24" Height="20" Style="{StaticResource ActionButton}"><Image Source="e:/img/back.png" /></Button>
      </DockPanel>
    </Border> 
  </DockPanel>







|







143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
        <!--/ScrollViewer-->
      </DockPanel>
    </Border> 

    <!-- Clipboard -->
    <Border Style="{StaticResource RibbonBorderGreen}" Width="125" DockPanel.Dock="Right">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="Clipboard"/>
        <Button DockPanel.Dock="Left" x:Name="BtnClipText" ToolTip="Copy (text)" Width="48" Height="48" Style="{StaticResource ActionButton}"><Image Source="e:/img/clipboard.png" /></Button>
        <Button DockPanel.Dock="Left" x:Name="BtnClipHtml" ToolTip="Copy (colored)" Width="48" Height="48" Style="{StaticResource ActionButton}"><Image Source="e:/img/html.png" /></Button>
        <Button DockPanel.Dock="Top" x:Name="BtnClipFree" ToolTip="Clear" Width="24" Height="20" Style="{StaticResource ActionButton}"><Image Source="e:/img/sweep.png" /></Button>
        <Button DockPanel.Dock="Bottom" x:Name="BtnClipSwap" ToolTip="Last buffer" Width="24" Height="20" Style="{StaticResource ActionButton}"><Image Source="e:/img/back.png" /></Button>
      </DockPanel>
    </Border> 
  </DockPanel>

Added modules/theme.beta.xaml.

















































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style x:Key="RibbonGradient" TargetType="DockPanel">
      <Setter Property="Background"><Setter.Value>
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFdd5555" Offset="0.00" />
        <GradientStop Color="#ffdd4444" Offset="0.30" />
        <GradientStop Color="#ffcc3333" Offset="0.70" />
        <GradientStop Color="#ffbb2222" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>
    </Style>

    <Style x:Key="RibbonBorder" TargetType="Border">
      <Setter Property="BorderBrush" Value="#FF996655" />
      <Setter Property="BorderThickness" Value="1" />
      <Setter Property="Margin" Value="4,0,4,4" />
      <Setter Property="Padding" Value="4,8,4,0" />
      <Setter Property="Background"><Setter.Value>
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#00ee6666" Offset="0.00" />
        <GradientStop Color="#ffee7777" Offset="0.20" />
        <GradientStop Color="#ffdd6666" Offset="0.50" />
        <GradientStop Color="#ffcc5555" Offset="0.51" />
        <GradientStop Color="#ffcc5555" Offset="0.70" />
        <GradientStop Color="#ff994444" Offset="0.71" />
        <GradientStop Color="#ffaa1111" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>
    </Style>

    <Style x:Key="RibbonBorderGreen" TargetType="Border" BasedOn="{StaticResource RibbonBorder}">
      <Setter Property="Background"><Setter.Value>
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#00aaaaff" Offset="0.00" />
        <GradientStop Color="#ff9999ee" Offset="0.20" />
        <GradientStop Color="#ff8888ee" Offset="0.70" />
        <GradientStop Color="#776666cc" Offset="0.71" />
        <GradientStop Color="#33111199" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>
    </Style>

    <Style x:Key="ActionLabel" TargetType="Label">
      <Setter Property="Foreground" Value="#FFCDCDCD" />
    </Style>

    <Style x:Key="ActionButton" TargetType="Button">
      <Setter Property="TabIndex" Value="0" />
      <Setter Property="FontSize" Value="18" />
      <Setter Property="Foreground" Value="#ff333366" />
      <Setter Property="Template">
       <Setter.Value>
        <ControlTemplate TargetType="Button">
         <Border>
          <Border.Style>
           <Style TargetType="{x:Type Border}">
            <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
              <Setter Property="Background" Value="#ffeeddaa"/>
              <Setter Property="Opacity" Value="1.0"/>
            </Trigger>
            <!--Trigger Property="IsPressed" Value="True">
              <Setter Property="Background" Value="#ffffcc99"/>
              <Setter Property="Opacity" Value="0.6"/></Trigger-->
            </Style.Triggers>
           </Style>
          </Border.Style>
          <Border Opacity="0.9"> <ContentPresenter/> </Border>
         </Border>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
    </Style>

    <Style x:Key="MenuButton" TargetType="Button">
      <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
      <Setter Property="BorderThickness" Value="1" />
      <Setter Property="BorderBrush" Value="Transparent" />
      <Setter Property="Padding" Value="2,1" />
      <Setter Property="Margin" Value="0,2,0,2" />
      <Setter Property="FontSize" Value="14" />
      <Setter Property="FontWeight" Value="Normal" />
      <Setter Property="Button.Effect">
        <Setter.Value>
            <DropShadowEffect Color="Black" Direction="320" ShadowDepth="3" BlurRadius="5" Opacity="0.5" />
        </Setter.Value>
      </Setter>
      <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
          <Setter Property="Background" Value="White" />
  
        </Trigger>
        <Trigger Property="IsPressed" Value="True">
          <Setter Property="Background" Value="Yellow" />
          <Setter Property="Padding" Value="3,2,1,0" />
        </Trigger>
      </Style.Triggers>
    </Style>

</ResourceDictionary>

Added modules/theme.bunti.xaml.











































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style TargetType="Menu">
      <Setter Property="Background" Value="#ffc0d0ef" />
      <Setter Property="Foreground" Value="#FF000011" />
    </Style>

    <Style x:Key="RibbonGradient" TargetType="DockPanel">
      <Setter Property="Background"><Setter.Value>
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFd1ddeb" Offset="0.00" />
        <GradientStop Color="#ffc9d9ed" Offset="0.30" />
        <GradientStop Color="#ffcdddef" Offset="0.70" />
        <GradientStop Color="#ffd7e6f6" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>
    </Style>

    <Style x:Key="RibbonBorder" TargetType="Border">
      <Setter Property="BorderBrush" Value="#FF556699" />
      <Setter Property="BorderThickness" Value="1" />
      <Setter Property="CornerRadius" Value="8" />
      <Setter Property="Margin" Value="3" />
      <Setter Property="Padding" Value="4,3,4,0" />
      <Setter Property="Background"><Setter.Value>
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#00d5e3f2" Offset="0.00" />
        <GradientStop Color="#ffc9d9ed" Offset="0.20" />
        <GradientStop Color="#ffcdddef" Offset="0.50" />
        <GradientStop Color="#ffcdddef" Offset="0.51" />
        <GradientStop Color="#ffd7e6f6" Offset="0.70" />
        <GradientStop Color="#ffc2d9f1" Offset="0.71" />
        <GradientStop Color="#ffa2c9e1" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>
    </Style>

    <Style x:Key="RibbonBorderGreen" TargetType="Border" BasedOn="{StaticResource RibbonBorder}">
      <Setter Property="Background"><Setter.Value>
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#00d5f2e3" Offset="0.00" />
        <GradientStop Color="#ffc9edd9" Offset="0.20" />
        <GradientStop Color="#ffb9e7d7" Offset="0.70" />
        <GradientStop Color="#ffa0e4c5" Offset="0.71" />
        <GradientStop Color="#ffa2e1c9" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>
    </Style>

    <Style x:Key="ActionLabel" TargetType="Label">
      <Setter Property="Foreground" Value="#ff223366" />
    </Style>

    <Style x:Key="ActionButton" TargetType="Button">
      <Setter Property="TabIndex" Value="0" />
      <Setter Property="FontSize" Value="18" />
      <Setter Property="Foreground" Value="#ff333366" />
      <Setter Property="Template">
       <Setter.Value>
        <ControlTemplate TargetType="Button">
         <Border>
          <Border.Style>
           <Style TargetType="{x:Type Border}">
            <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
              <Setter Property="Background" Value="#ffeeddaa"/>
              <Setter Property="Opacity" Value="1.0"/>
            </Trigger>
            <!--Trigger Property="IsPressed" Value="True">
              <Setter Property="Background" Value="#ffffcc99"/>
              <Setter Property="Opacity" Value="0.6"/></Trigger-->
            </Style.Triggers>
           </Style>
          </Border.Style>
          <Border Opacity="0.9"> <ContentPresenter/> </Border>
         </Border>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
    </Style>

</ResourceDictionary>

Changes to modules/theme.dark.xaml.

1
2
3
4















5
6

7
8
9
10
11
12
13

14
15
16
17
18
19
20
<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
















    <Style x:Key="RibbonGradient" TargetType="DockPanel">
      <Setter Property="Background"><Setter.Value>

      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFdd5555" Offset="0.00" />
        <GradientStop Color="#ffdd4444" Offset="0.30" />
        <GradientStop Color="#ffcc3333" Offset="0.70" />
        <GradientStop Color="#ffbb2222" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>

    </Style>

    <Style x:Key="RibbonBorder" TargetType="Border">
      <Setter Property="BorderBrush" Value="#11556699" />
      <Setter Property="BorderThickness" Value="1" />
      <Setter Property="Margin" Value="4,0,4,4" />
      <Setter Property="Padding" Value="4,8,4,0" />




>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|
>

|
|
|
|

|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style TargetType="Menu">
      <Setter Property="Background" Value="#FF344055" />
      <Setter Property="Foreground" Value="#FFCDCDCD" />
    </Style>
    <Style TargetType="MenuItem">
      <Setter Property="Foreground" Value="#FFCDCDCD" />
      <Setter Property="Background" Value="#FF344055" />
      <Setter Property="BorderBrush" Value="#02556699" />
      <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
          <Setter Property="Foreground" Value="#FF111111" />
        </Trigger>
      </Style.Triggers>
    </Style>
    
    <Style x:Key="RibbonGradient" TargetType="DockPanel">
      <Setter Property="Background" Value="#FF181B2B" >
      <!--Setter.Value>
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FF181B20" Offset="0.00" />
        <GradientStop Color="#FF181B2B" Offset="0.202" />
        <GradientStop Color="#FF181B3B" Offset="0.735" />
        <GradientStop Color="#FF181B20" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value-->
      </Setter>
    </Style>

    <Style x:Key="RibbonBorder" TargetType="Border">
      <Setter Property="BorderBrush" Value="#11556699" />
      <Setter Property="BorderThickness" Value="1" />
      <Setter Property="Margin" Value="4,0,4,4" />
      <Setter Property="Padding" Value="4,8,4,0" />
37
38
39
40
41
42
43




44
45
46
47
48
49
50
        <GradientStop Color="#FF0D1F0C" Offset="0.272" />
        <GradientStop Color="#FF030C04" Offset="0.71" />
        <GradientStop Color="#990D380F" Offset="0.938" />
        <GradientStop Color="#33111199" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>
    </Style>





    <Style x:Key="ActionButton" TargetType="Button">
      <Setter Property="TabIndex" Value="0" />
      <Setter Property="FontSize" Value="18" />
      <Setter Property="Foreground" Value="#FFCDCDCD" />
      <Setter Property="Template">
       <Setter.Value>







>
>
>
>







54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
        <GradientStop Color="#FF0D1F0C" Offset="0.272" />
        <GradientStop Color="#FF030C04" Offset="0.71" />
        <GradientStop Color="#990D380F" Offset="0.938" />
        <GradientStop Color="#33111199" Offset="1.00" />
      </LinearGradientBrush>
      </Setter.Value></Setter>
    </Style>

    <Style x:Key="ActionLabel" TargetType="Label">
      <Setter Property="Foreground" Value="#FFCDCDCD" />
    </Style>

    <Style x:Key="ActionButton" TargetType="Button">
      <Setter Property="TabIndex" Value="0" />
      <Setter Property="FontSize" Value="18" />
      <Setter Property="Foreground" Value="#FFCDCDCD" />
      <Setter Property="Template">
       <Setter.Value>
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
          <Border Opacity="0.95"> <ContentPresenter/> </Border>
         </Border>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
    </Style>

    <Style TargetType="MenuItem">
      <Setter Property="Background" Value="#FF344055" />
      <Setter Property="Foreground" Value="#FFCDCDCD" />
<!--Setter.Value>
<Style.Triggers>
          <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="#FF436166"/>
          </Trigger>
</Style.Triggers>
</Setter.Value-->
      <Setter Property="BorderBrush" Value="#02556699" />
    </Style>

</ResourceDictionary>







<
<
<
<
<
<
<
<
<
<
<
<


87
88
89
90
91
92
93












94
95
          <Border Opacity="0.95"> <ContentPresenter/> </Border>
         </Border>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
    </Style>














</ResourceDictionary>