Я пытаюсь привязать цвет кисти границы к свойству управления файла утилит. Каков синтаксис для ссылки на статическое свойство статического класса, который находится в нестатическом классе?
<Window x:Class="Company.FieldServiceManagement.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:FieldServiceManagement"
xmlns:util="clr-namespace:Company.Utilities;assembly=Comp_Utilities"
mc:Ignorable="d"
Title="Field Service Management - Stand Alone" Height="750" MinHeight="500" Width="950" MinWidth="950">
<Window.Resources>
<util:ApplicationVariables x:Key="apv" />
</Window.Resources>
<Window.Style>
<Style TargetType="{x:Type Window}">
<Setter Property="BorderThickness" Value="3"/>
<Setter Property="BorderBrush" Value="{Binding Source={StaticResource apv}, Path=Colors.Management}"/>
</Style>
</Window.Style>
<Grid>
<ContentControl x:Name="mainContentControl"/>
</Grid>
</Window>
Из сборки DLL утилит:
namespace Company.Utilities
{
public class ApplicationVariables
{
public static class Colors
{
public static Color Employee { get; } = Color.FromArgb(192, 255, 192);
public static Color Management { get; } = Color.FromArgb(255, 224, 192);
public static Color HumanResources { get; } = Color.FromArgb(255, 192, 192);
public static Color Payroll { get; } = Color.FromArgb(192, 255, 255);
public static Color Rerpoting { get; } = Color.FromArgb(255, 192, 255);
}
}
}
Обновление
Это отличие, хотя и внешне незначительное по сравнению с внешней точкой зрения, заключается в том, что потенциальный дублирующий пост представляет собой простую структуру: нестатический класс -> статическое свойство, в то время как моя ситуация: нестатический класс -> статический класс -> статическое свойство. Метод ссылки не так прост, как потенциальный повторяющийся пост.
Обновление № 2
С проблемой типа, идентифицированной ASh, было создано расширение для преобразования цвета чертежа вЦвет носителя, а затем SolidColorBrush были созданы и на них есть ссылки.
public static wpf.Color ColorDrawingToMedia(this Color color)
{
return wpf.Color.FromArgb(color.A, color.R, color.G, color.B);
}
----
public static WPF.SolidColorBrush ManagementBrush = new WPF.SolidColorBrush(Management.ColorDrawingToMedia());
----
<Setter Property="BorderBrush" Value="{x:Static util:ApplicationVariables+Colors.ManagementBrush}"/>