Поле со списком WPF, кажется, вызывает InvalidCastException - PullRequest
0 голосов
/ 20 января 2019

Выдержка из Справочный источник :

private void CloneLayoutUpdated(object sender, EventArgs e)
{
    Rectangle rect = (Rectangle)SelectionBoxItem;
    rect.Width = _clonedElement.RenderSize.Width;
    rect.Height = _clonedElement.RenderSize.Height;

    VisualBrush visualBrush = (VisualBrush)rect.Fill; // (x)
    visualBrush.Viewbox = new Rect(_clonedElement.RenderSize);
    visualBrush.Viewport = new Rect(_clonedElement.RenderSize);
}

Я бы сказал, что строка (x) содержит ошибки, поскольку rect.Fill может относиться к SolidColorBrush.

Есть ли у кого-то (простой?) Xaml / C# код для исключения?

1 Ответ

0 голосов
/ 21 января 2019

SelectionBoxItem - свойство зависимостей только для чтения.Создание его фактического значения обрабатывается внутри класса ComboBox, и никакое значение для него не может быть получено извне.Если вы проверите метод UpdateSelectionBoxItem прямо выше, вы увидите, что рассматриваемый обработчик регистрируется только тогда, когда для SelectionBoxItem установлено значение Rectangle, для которого VisualBrush равно Fill.Поэтому эти приведения являются «безопасными», rect.Fill никогда не будет ссылаться на что-либо, кроме VisualBrush, когда вызывается этот обработчик события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...