'V' из HSV, вероятно, что Вы ищете. MATLAB имеет функцию rgb2hsv, и ранее процитированная статья Википедии полна псевдокода. Если бы преобразование RGB2HSV не выполнимо, менее точная модель была бы полутоновой версией изображения.
Это невозможно, потому что толщина является типом значения - вы можете создавать привязки только к свойствам зависимостей объектов зависимостей.
Что вы можете сделать, так это привязать BorderThickness как обычно:
<Border Margin="0"
Padding="{TemplateBinding Padding}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness, Converter={StaticResource ThicknessConverter}}" />
затем использовать конвертер для возврата соответствующим образом измененной толщины:
object Convert( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture )
{
var thickness = (Thickness) value;
return new Thickness( 0.0, thickness.Top, 0.0, thickness.Bottom );
}
Вы даже можете использовать ConverterParameter, чтобы указать, какие части толщины нужно очистить.