Skip to content

Instantly share code, notes, and snippets.

@smailliwcs
smailliwcs / SystemColors.md
Last active October 14, 2021 14:55
Descriptions for WPF's system colors
Name Description
ActiveBorder Color of the active window's border
ActiveCaption Background color of the active window's title bar
ActiveCaptionText Color of the text in the active window's title bar
AppWorkspace Color of the application workspace
Control Face color of a three-dimensional display element
ControlDark Shadow color of a three-dimensional display element
ControlDarkDark Dark shadow color of a three-dimensional display element
ControlLight Light color of a three-dimensional display element
@smailliwcs
smailliwcs / AutoGrid.cs
Created September 22, 2020 15:25
Automatic WPF grids
using System.Windows;
using System.Windows.Controls;
public class AutoGrid : Grid
{
protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved)
{
base.OnVisualChildrenChanged(visualAdded, visualRemoved);
SetCells();
}
@smailliwcs
smailliwcs / Forms.xaml
Last active September 22, 2020 15:31
Pixel-perfect WPF forms
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="CheckBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<Border Padding="0,6,0,5">
<Grid x:Name="templateRoot" Background="Transparent" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
@smailliwcs
smailliwcs / gradient.plt
Last active September 22, 2020 15:29
Gradients in gnuplot
set terminal png size 640,480
set output 'gradient.png'
set xrange [-5:5]
set yrange [-5:5]
set cbrange [0:1]
unset colorbox
unset key
set palette gray negative
set object 1 rectangle from 1,-10 to 10,10 behind fillcolor rgb 'black' fillstyle noborder
plot '< python gradient.py -x -1 1 -10 10 64' with image
@smailliwcs
smailliwcs / output.png
Last active September 22, 2020 15:28
GIMP script: script-fu-highlight
output.png
@smailliwcs
smailliwcs / IntRangeArg.py
Created September 22, 2020 15:26
Integer range command-line arguments in Python
import argparse
class IntRangeArg:
def __init__(self, start=None, stop=None):
assert start is None or stop is None or start < stop
self.start = start
self.stop = stop
def __contains__(self, value):
@smailliwcs
smailliwcs / extension.js
Created September 22, 2020 15:26
Disabling hot corners in GNOME
const LM = imports.ui.main.layoutManager;
let _updateHotCorners;
function _noop() { }
function _destroyHotCorners() {
LM.hotCorners.forEach(corner => {
if (corner) {
corner.destroy();
@smailliwcs
smailliwcs / App.cs
Created September 22, 2020 15:26
Selecting text on keyboard navigation in WPF
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
RegisterClassHandlers();
@smailliwcs
smailliwcs / ClearableRadioButton.cs
Created September 22, 2020 15:26
Clearable WPF radio buttons
using System.Windows.Controls;
public class ClearableRadioButton : RadioButton
{
protected override void OnClick()
{
bool? wasChecked = IsChecked;
base.OnClick();
if (wasChecked.GetValueOrDefault())
{
@smailliwcs
smailliwcs / MainWindow.xaml
Created September 22, 2020 15:26
Mutually exclusive WPF checkboxes
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<CheckBox IsChecked="{Binding A}">
<i:Interaction.Behaviors>
<local:UncheckOnSignalBehavior Signal="{Binding None}" />
</i:Interaction.Behaviors>
Option A
</CheckBox>
<CheckBox IsChecked="{Binding B}">