mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2026-08-10 01:51:18 +10:00
Compare commits
9
Commits
26.07.04
...
7ce80cf930
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ce80cf930 | ||
|
|
007995c112 | ||
|
|
0dcd361c51 | ||
|
|
aeaef46e30 | ||
|
|
e0dfeb4f4d | ||
|
|
1c7ee06bbe | ||
|
|
ed6de94c46 | ||
|
|
640b02868a | ||
|
|
29b269201d |
@@ -71,6 +71,7 @@ jobs:
|
|||||||
labels: |
|
labels: |
|
||||||
automated
|
automated
|
||||||
documentation
|
documentation
|
||||||
|
skip-changelog
|
||||||
|
|
||||||
- name: Check outputs
|
- name: Check outputs
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -1,77 +0,0 @@
|
|||||||
name: Issue slash commands
|
|
||||||
|
|
||||||
on:
|
|
||||||
issue_comment:
|
|
||||||
types: [created, edited]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
issueCommands:
|
|
||||||
# Skip this job if the comment was created/edited on a PR
|
|
||||||
if: ${{ !github.event.issue.pull_request }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
issues: write
|
|
||||||
pull-requests: none
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Process slash command
|
|
||||||
uses: actions/github-script@v9
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const allowedUsers = ["ChrisTitusTech", "og-mrk", "Marterich", "MyDrift-user", "Real-MullaC", "CodingWonders", "GabiNun2", "FluffyPunk"];
|
|
||||||
const commenter = context.payload.comment.user.login;
|
|
||||||
|
|
||||||
// Authorization check first — before any parsing of comment content
|
|
||||||
if (!allowedUsers.includes(commenter)) {
|
|
||||||
console.log(`User ${commenter} is not in the allowlist. Skipping.`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read comment body as data, never interpolated into shell
|
|
||||||
const body = context.payload.comment.body;
|
|
||||||
const issueNumber = context.issue.number;
|
|
||||||
const owner = context.repo.owner;
|
|
||||||
const repo = context.repo.repo;
|
|
||||||
|
|
||||||
// /label 'name' or /label name
|
|
||||||
const labelMatch = body.match(/\/label\s+'([^']+)'|\/label\s+(\S+?)(?:\s|$)/);
|
|
||||||
if (labelMatch) {
|
|
||||||
const labelName = (labelMatch[1] || labelMatch[2]).trim();
|
|
||||||
console.log(`Adding label: ${labelName}`);
|
|
||||||
await github.rest.issues.addLabels({
|
|
||||||
owner, repo, issue_number: issueNumber,
|
|
||||||
labels: [labelName],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// /unlabel 'name' or /unlabel name
|
|
||||||
const unlabelMatch = body.match(/\/unlabel\s+'([^']+)'|\/unlabel\s+(\S+?)(?:\s|$)/);
|
|
||||||
if (unlabelMatch) {
|
|
||||||
const labelName = (unlabelMatch[1] || unlabelMatch[2]).trim();
|
|
||||||
console.log(`Removing label: ${labelName}`);
|
|
||||||
await github.rest.issues.removeLabel({
|
|
||||||
owner, repo, issue_number: issueNumber,
|
|
||||||
name: labelName,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// /close (optionally with 'not planned')
|
|
||||||
if (body.includes('/close')) {
|
|
||||||
const stateReason = body.includes('not planned') ? 'not_planned' : 'completed';
|
|
||||||
console.log(`Closing issue (reason: ${stateReason})`);
|
|
||||||
await github.rest.issues.update({
|
|
||||||
owner, repo, issue_number: issueNumber,
|
|
||||||
state: 'closed',
|
|
||||||
state_reason: stateReason,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// /open or /reopen
|
|
||||||
if (body.includes('/open') || body.includes('/reopen')) {
|
|
||||||
console.log('Reopening issue');
|
|
||||||
await github.rest.issues.update({
|
|
||||||
owner, repo, issue_number: issueNumber,
|
|
||||||
state: 'open',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -32,7 +32,9 @@ jobs:
|
|||||||
body: 'Automated update of sponsors section'
|
body: 'Automated update of sponsors section'
|
||||||
branch: sponsors-update
|
branch: sponsors-update
|
||||||
delete-branch: true
|
delete-branch: true
|
||||||
labels: automated
|
labels: |
|
||||||
|
automated
|
||||||
|
skip-changelog
|
||||||
|
|
||||||
- name: Check outputs
|
- name: Check outputs
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ See https://github.com/ChrisTitusTech/winutil/blob/main/.github/CONTRIBUTING.md
|
|||||||
|
|
||||||
These are the sponsors that help keep this project alive with monthly contributions.
|
These are the sponsors that help keep this project alive with monthly contributions.
|
||||||
|
|
||||||
<!-- sponsors --><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https://github.com/FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https://github.com/DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https://github.com/DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https://github.com/KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/andrewpayne68"><img src="https://github.com/andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><!-- sponsors -->
|
<!-- sponsors --><a href="https://github.com/ysaito8015"><img src="https://github.com/ysaito8015.png" width="60px" alt="User avatar: Yusuke Saito" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https://github.com/FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https://github.com/DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https://github.com/DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https://github.com/KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/andrewpayne68"><img src="https://github.com/andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><a href="https://github.com/johanwildeboer"><img src="https://github.com/johanwildeboer.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/lukas346"><img src="https://github.com/lukas346.png" width="60px" alt="User avatar: Wook" /></a><a href="https://github.com/tsv31"><img src="https://github.com/tsv31.png" width="60px" alt="User avatar: Sorin" /></a><a href="https://github.com/seanh1995"><img src="https://github.com/seanh1995.png" width="60px" alt="User avatar: Sean (ANGRYxScotsman)" /></a><!-- sponsors -->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -719,15 +719,6 @@
|
|||||||
"winget": "XBMCFoundation.Kodi",
|
"winget": "XBMCFoundation.Kodi",
|
||||||
"foss": true
|
"foss": true
|
||||||
},
|
},
|
||||||
"lightshot": {
|
|
||||||
"category": "Multimedia Tools",
|
|
||||||
"choco": "lightshot",
|
|
||||||
"content": "Lightshot",
|
|
||||||
"description": "The fastest way to take a customizable screenshot.",
|
|
||||||
"link": "https://app.prntscr.com/",
|
|
||||||
"winget": "Skillbrains.Lightshot",
|
|
||||||
"foss": false
|
|
||||||
},
|
|
||||||
"lazygit": {
|
"lazygit": {
|
||||||
"category": "Development",
|
"category": "Development",
|
||||||
"choco": "lazygit",
|
"choco": "lazygit",
|
||||||
@@ -1207,7 +1198,7 @@
|
|||||||
"processmonitor": {
|
"processmonitor": {
|
||||||
"category": "Microsoft Tools",
|
"category": "Microsoft Tools",
|
||||||
"choco": "procexp",
|
"choco": "procexp",
|
||||||
"content": "SysInternals Process Monitor",
|
"content": "Process Monitor",
|
||||||
"description": "SysInternals Process Monitor is an advanced monitoring tool that shows real-time file system, registry, and process/thread activity.",
|
"description": "SysInternals Process Monitor is an advanced monitoring tool that shows real-time file system, registry, and process/thread activity.",
|
||||||
"link": "https://docs.microsoft.com/en-us/sysinternals/downloads/procmon",
|
"link": "https://docs.microsoft.com/en-us/sysinternals/downloads/procmon",
|
||||||
"winget": "Microsoft.Sysinternals.ProcessMonitor",
|
"winget": "Microsoft.Sysinternals.ProcessMonitor",
|
||||||
@@ -1396,7 +1387,7 @@
|
|||||||
"tcpview": {
|
"tcpview": {
|
||||||
"category": "Microsoft Tools",
|
"category": "Microsoft Tools",
|
||||||
"choco": "tcpview",
|
"choco": "tcpview",
|
||||||
"content": "SysInternals TCPView",
|
"content": "TCPView",
|
||||||
"description": "SysInternals TCPView is a network monitoring tool that displays a detailed list of all TCP and UDP endpoints on your system.",
|
"description": "SysInternals TCPView is a network monitoring tool that displays a detailed list of all TCP and UDP endpoints on your system.",
|
||||||
"link": "https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview",
|
"link": "https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview",
|
||||||
"winget": "Microsoft.Sysinternals.TCPView",
|
"winget": "Microsoft.Sysinternals.TCPView",
|
||||||
@@ -1513,7 +1504,7 @@
|
|||||||
"ungoogled": {
|
"ungoogled": {
|
||||||
"category": "Browsers",
|
"category": "Browsers",
|
||||||
"choco": "ungoogled-chromium",
|
"choco": "ungoogled-chromium",
|
||||||
"content": "Ungoogled",
|
"content": "Ungoogled Chromium",
|
||||||
"description": "Ungoogled Chromium is a version of Chromium without Google's integration for enhanced privacy and control.",
|
"description": "Ungoogled Chromium is a version of Chromium without Google's integration for enhanced privacy and control.",
|
||||||
"link": "https://github.com/Eloston/ungoogled-chromium",
|
"link": "https://github.com/Eloston/ungoogled-chromium",
|
||||||
"winget": "eloston.ungoogled-chromium",
|
"winget": "eloston.ungoogled-chromium",
|
||||||
|
|||||||
+5
-4
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
"shared": {
|
"shared": {
|
||||||
"AppEntryWidth": "200",
|
"AppEntryWidth": "220",
|
||||||
"AppEntryFontSize": "11",
|
"AppEntryFontSize": "13.2",
|
||||||
"AppEntryMargin": "1,0,1,0",
|
"AppEntryIconSize": "28",
|
||||||
"AppEntryBorderThickness": "0",
|
"AppEntryMargin": "3",
|
||||||
|
"AppEntryBorderThickness": "1",
|
||||||
"CustomDialogFontSize": "12",
|
"CustomDialogFontSize": "12",
|
||||||
"CustomDialogFontSizeHeader": "14",
|
"CustomDialogFontSizeHeader": "14",
|
||||||
"CustomDialogLogoSize": "25",
|
"CustomDialogLogoSize": "25",
|
||||||
|
|||||||
@@ -60,6 +60,30 @@ function Initialize-InstallAppEntry {
|
|||||||
$borderElement.SetResourceReference([Windows.Controls.Control]::BackgroundProperty, "AppInstallUnselectedColor")
|
$borderElement.SetResourceReference([Windows.Controls.Control]::BackgroundProperty, "AppInstallUnselectedColor")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$contentPanel = New-Object Windows.Controls.StackPanel
|
||||||
|
$contentPanel.Orientation = "Horizontal"
|
||||||
|
$contentPanel.VerticalAlignment = [Windows.VerticalAlignment]::Center
|
||||||
|
|
||||||
|
$icon = New-Object Windows.Controls.Grid
|
||||||
|
$icon.SetResourceReference([Windows.FrameworkElement]::WidthProperty, "AppEntryIconSize")
|
||||||
|
$icon.SetResourceReference([Windows.FrameworkElement]::HeightProperty, "AppEntryIconSize")
|
||||||
|
$icon.Margin = New-Object Windows.Thickness(0, 0, 8, 0)
|
||||||
|
$fallback = New-Object Windows.Controls.TextBlock
|
||||||
|
$fallback.Text = $Apps.$appKey.content.TrimStart(".").Substring(0, 1).ToUpper()
|
||||||
|
$fallback.FontWeight = "Bold"; $fallback.HorizontalAlignment = "Center"; $fallback.VerticalAlignment = "Center"
|
||||||
|
if ($Apps.$appKey.link) { $fallback.Visibility = "Collapsed" }
|
||||||
|
$fallback.SetResourceReference([Windows.Controls.TextBlock]::FontSizeProperty, "AppEntryFontSize")
|
||||||
|
$fallback.SetResourceReference([Windows.Controls.TextBlock]::ForegroundProperty, "ToggleButtonOnColor")
|
||||||
|
[void]$icon.Children.Add($fallback)
|
||||||
|
if ($Apps.$appKey.link) {
|
||||||
|
$logo = New-Object Windows.Controls.Image
|
||||||
|
$logo.Stretch = [Windows.Media.Stretch]::Uniform
|
||||||
|
$logo.Source = "https://www.google.com/s2/favicons?sz=64&domain_url=$([uri]::EscapeDataString($Apps.$appKey.link))"
|
||||||
|
$logo.Add_ImageFailed({ $this.Visibility = "Collapsed"; $this.Parent.Children[0].Visibility = "Visible" })
|
||||||
|
[void]$icon.Children.Add($logo)
|
||||||
|
}
|
||||||
|
[void]$contentPanel.Children.Add($icon)
|
||||||
|
|
||||||
# Create the TextBlock for the application name
|
# Create the TextBlock for the application name
|
||||||
$appName = New-Object Windows.Controls.TextBlock
|
$appName = New-Object Windows.Controls.TextBlock
|
||||||
$appName.Style = $sync.Form.Resources.AppEntryNameStyle
|
$appName.Style = $sync.Form.Resources.AppEntryNameStyle
|
||||||
@@ -73,7 +97,8 @@ function Initialize-InstallAppEntry {
|
|||||||
|
|
||||||
[void]$appName.Inlines.Add($fossRun)
|
[void]$appName.Inlines.Add($fossRun)
|
||||||
}
|
}
|
||||||
$checkBox.Content = $appName
|
[void]$contentPanel.Children.Add($appName)
|
||||||
|
$checkBox.Content = $contentPanel
|
||||||
|
|
||||||
# Add accessibility properties to make the elements screen reader friendly
|
# Add accessibility properties to make the elements screen reader friendly
|
||||||
$checkBox.SetValue([Windows.Automation.AutomationProperties]::NameProperty, $app.content)
|
$checkBox.SetValue([Windows.Automation.AutomationProperties]::NameProperty, $app.content)
|
||||||
|
|||||||
@@ -310,6 +310,7 @@ Describe "XAML and sync wiring" {
|
|||||||
"InstallAppEntriesRendered",
|
"InstallAppEntriesRendered",
|
||||||
"ProgressBar",
|
"ProgressBar",
|
||||||
"progressBarTextBlock",
|
"progressBarTextBlock",
|
||||||
|
"FontScaleFactor",
|
||||||
"Win11ISOImageInfo",
|
"Win11ISOImageInfo",
|
||||||
"Win11ISODriveLetter",
|
"Win11ISODriveLetter",
|
||||||
"Win11ISOWimPath",
|
"Win11ISOWimPath",
|
||||||
|
|||||||
@@ -210,6 +210,8 @@ $sync.SearchBarClearButton.Add_Click({
|
|||||||
})
|
})
|
||||||
|
|
||||||
# add some shortcuts for people that don't like clicking
|
# add some shortcuts for people that don't like clicking
|
||||||
|
function Invoke-WinUtilFontScaleStep([double]$Step) { $sync.FontScalingSlider.Value = [math]::Max(0.75, [math]::Min(2.0, $sync.FontScalingSlider.Value + $Step)); Invoke-WinUtilFontScaling -ScaleFactor $sync.FontScalingSlider.Value }
|
||||||
|
|
||||||
$commonKeyEvents = {
|
$commonKeyEvents = {
|
||||||
# Prevent shortcuts from executing if a process is already running
|
# Prevent shortcuts from executing if a process is already running
|
||||||
if ($sync.ProcessRunning -eq $true) {
|
if ($sync.ProcessRunning -eq $true) {
|
||||||
@@ -233,13 +235,25 @@ $commonKeyEvents = {
|
|||||||
}
|
}
|
||||||
# Handle Ctrl key combinations for specific actions
|
# Handle Ctrl key combinations for specific actions
|
||||||
if ($_.KeyboardDevice.Modifiers -eq "Ctrl") {
|
if ($_.KeyboardDevice.Modifiers -eq "Ctrl") {
|
||||||
|
$keyEventArgs = $_
|
||||||
switch ($_.Key) {
|
switch ($_.Key) {
|
||||||
"F" { $sync.SearchBar.Focus() } # Focus on the search bar
|
"F" { $sync.SearchBar.Focus() } # Focus on the search bar
|
||||||
"Q" { $this.Close() } # Close the application
|
"Q" { $this.Close() } # Close the application
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$ctrlShiftModifiers = [Windows.Input.ModifierKeys]::Control -bor [Windows.Input.ModifierKeys]::Shift
|
||||||
|
if ($_.KeyboardDevice.Modifiers -eq "Ctrl" -or $_.KeyboardDevice.Modifiers -eq $ctrlShiftModifiers) {
|
||||||
|
$keyEventArgs = $_
|
||||||
|
switch ($_.Key) {
|
||||||
|
{ $_ -in "OemPlus", "Add" } { Invoke-WinUtilFontScaleStep 0.05; $keyEventArgs.Handled = $true }
|
||||||
|
{ $_ -in "OemMinus", "Subtract" } { Invoke-WinUtilFontScaleStep -0.05; $keyEventArgs.Handled = $true }
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$sync["Form"].Add_PreViewKeyDown($commonKeyEvents)
|
$sync["Form"].Add_PreViewKeyDown($commonKeyEvents)
|
||||||
|
$sync["Form"].Add_PreviewMouseWheel({
|
||||||
|
if ([Windows.Input.Keyboard]::Modifiers -eq "Ctrl") { Invoke-WinUtilFontScaleStep $(if ($_.Delta -gt 0) { 0.05 } else { -0.05 }); $_.Handled = $true }
|
||||||
|
})
|
||||||
|
|
||||||
$sync["Form"].Add_MouseLeftButtonDown({
|
$sync["Form"].Add_MouseLeftButtonDown({
|
||||||
Invoke-WPFPopup -Action "Hide" -Popups @("Settings", "Theme", "FontScaling")
|
Invoke-WPFPopup -Action "Hide" -Popups @("Settings", "Theme", "FontScaling")
|
||||||
|
|||||||
@@ -433,10 +433,10 @@ $scripts = @(
|
|||||||
reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" /v DODownloadMode /f;
|
reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" /v DODownloadMode /f;
|
||||||
reg.exe add "HKLM\Software\Policies\Microsoft\Windows\OneDrive" /v DisableFileSyncNGSC /t REG_DWORD /d 0 /f;
|
reg.exe add "HKLM\Software\Policies\Microsoft\Windows\OneDrive" /v DisableFileSyncNGSC /t REG_DWORD /d 0 /f;
|
||||||
reg.exe add "HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR" /v AppCaptureEnabled /t REG_DWORD /d 0 /f;
|
reg.exe add "HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR" /v AppCaptureEnabled /t REG_DWORD /d 0 /f;
|
||||||
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\BITS" /v Start /t REG_DWORD /d 3 /f;
|
$services = @{ BITS = 'Manual'; wuauserv = 'Manual'; UsoSvc = 'Automatic'; WaaSMedicSvc = 'Manual' };
|
||||||
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\wuauserv" /v Start /t REG_DWORD /d 3 /f;
|
foreach ($name in $services.Keys) {
|
||||||
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\UsoSvc" /v Start /t REG_DWORD /d 2 /f;
|
Set-Service -Name $name -StartupType $services[$name] -ErrorAction SilentlyContinue;
|
||||||
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v Start /t REG_DWORD /d 3 /f;
|
}
|
||||||
};
|
};
|
||||||
{
|
{
|
||||||
reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Education" /f;
|
reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Education" /f;
|
||||||
|
|||||||
+5
-26
@@ -84,8 +84,8 @@
|
|||||||
<Style x:Key="AppEntryBorderStyle" TargetType="Border">
|
<Style x:Key="AppEntryBorderStyle" TargetType="Border">
|
||||||
<Setter Property="BorderBrush" Value="Gray"/>
|
<Setter Property="BorderBrush" Value="Gray"/>
|
||||||
<Setter Property="BorderThickness" Value="{DynamicResource AppEntryBorderThickness}"/>
|
<Setter Property="BorderThickness" Value="{DynamicResource AppEntryBorderThickness}"/>
|
||||||
<Setter Property="CornerRadius" Value="2"/>
|
<Setter Property="CornerRadius" Value="5"/>
|
||||||
<Setter Property="Padding" Value="{DynamicResource AppEntryMargin}"/>
|
<Setter Property="Padding" Value="6,4"/>
|
||||||
<Setter Property="Width" Value="{DynamicResource AppEntryWidth}"/>
|
<Setter Property="Width" Value="{DynamicResource AppEntryWidth}"/>
|
||||||
<Setter Property="VerticalAlignment" Value="Top"/>
|
<Setter Property="VerticalAlignment" Value="Top"/>
|
||||||
<Setter Property="Margin" Value="{DynamicResource AppEntryMargin}"/>
|
<Setter Property="Margin" Value="{DynamicResource AppEntryMargin}"/>
|
||||||
@@ -100,30 +100,9 @@
|
|||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<ControlTemplate TargetType="CheckBox">
|
<ControlTemplate TargetType="CheckBox">
|
||||||
<StackPanel Orientation="Horizontal">
|
<ContentPresenter Content="{TemplateBinding Content}"
|
||||||
<Grid Width="16" Height="16" Margin="0,0,8,0">
|
VerticalAlignment="Center"
|
||||||
<Border Name="CheckBoxBorder"
|
HorizontalAlignment="Left"/>
|
||||||
BorderBrush="{DynamicResource MainForegroundColor}"
|
|
||||||
Background="{DynamicResource ButtonBackgroundColor}"
|
|
||||||
BorderThickness="1"
|
|
||||||
Width="12"
|
|
||||||
Height="12"
|
|
||||||
CornerRadius="2"/>
|
|
||||||
<Path Name="CheckMark"
|
|
||||||
Stroke="{DynamicResource ToggleButtonOnColor}"
|
|
||||||
StrokeThickness="2"
|
|
||||||
Data="M 2 8 L 6 12 L 14 4"
|
|
||||||
Visibility="Collapsed"/>
|
|
||||||
</Grid>
|
|
||||||
<ContentPresenter Content="{TemplateBinding Content}"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
HorizontalAlignment="Left"/>
|
|
||||||
</StackPanel>
|
|
||||||
<ControlTemplate.Triggers>
|
|
||||||
<Trigger Property="IsChecked" Value="True">
|
|
||||||
<Setter TargetName="CheckMark" Property="Visibility" Value="Visible"/>
|
|
||||||
</Trigger>
|
|
||||||
</ControlTemplate.Triggers>
|
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
|
|||||||
Reference in New Issue
Block a user