Как связать дочерние даты к родительскому элементу в шаблоне WPF .XAMLC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как связать дочерние даты к родительскому элементу в шаблоне WPF .XAML

Сообщение Anonymous »

Недавно я получил новую работу, и задачи гораздо глубже связаны с WPF, чем мои текущие знания.
Приложение содержит различные шаблоны для флажков. Они содержат несколько дочерних уровней, и мне нужно получить доступ к значениям определенного уровня.
Чтобы визуализировать:

Код: Выделить всё





































Grid.Column="1" Grid.ColumnSpan="5"
Grid.Row="2" Grid.RowSpan="5"
Data="M31,5 L19.5,5 19.5,19.5 34.5,19.5 34.5,11.75"
Stretch="Fill"
Stroke="White"/>












































Мне нужно значение размера, которое InnerBorder имеет после рендеринга, чтобы правильно определить размер декоративного элемента, но я понятия не имею, как получить это значение . Для других объектов в этом контексте мне удалось найти необходимую мне информацию через отношения «родитель-потомок» в коде, но здесь указан только флажок «Предоставлен шаблон».
В настоящее время это класс украшения, который я пытаюсь подогнать к элементу:

Код: Выделить всё

public class RectangleAdorner : Adorner
{
public RectangleAdorner(UIElement adornedElement, bool isRequired, int? widthOffset, int? heightOffset) : base(adornedElement)
{
IsHitTestVisible = false;
IsRequired = isRequired;
HeightOffset =  heightOffset.HasValue ? heightOffset.Value : 0;
WidthOffset = widthOffset.HasValue ? widthOffset.Value : 0;
}

public bool IsRequired { get; set; }
public int HeightOffset { get; set; }
public int WidthOffset { get; set; }

protected override void OnRender(DrawingContext drawingContext)
{
double actualWidth = this.AdornedElement.RenderSize.Width - WidthOffset;
double actualHeight = this.AdornedElement.RenderSize.Height - HeightOffset;
Rect adornedElementRect = new Rect(0, 0, actualHeight, actualWidth);

SolidColorBrush renderBrush = new SolidColorBrush(Colors.Green);
renderBrush.Opacity = 0.3;

double render_thickness = 2.0;
Pen renderPen = IsRequired ? new Pen(new SolidColorBrush(Colors.Red), render_thickness)
: new Pen(new SolidColorBrush(Colors.Green), render_thickness);

drawingContext.DrawRectangle(renderBrush, renderPen, adornedElementRect);
}
}
tl/dr:
Что мне нужно сделать с этим файлом .xaml, который я могу вызвать Frameworklement CHACKBOXELEMENT.INNERPATH.HEIGTH < /code> или аналогичный в моем файле .CS? Почувствуйте, как ControlTemplate.triggers может быть полезным, но до сих пор я не понимаю ни одной вещи о них. br /> Редактировать 2:
После получения дополнительной попытки я нашел VisualTreeHelper < /code>. С этим я смог сделать это: < /p>
if (frameworkElement is CheckBox box)
{
var bulletDecorator = (BulletDecorator) VisualTreeHelper.GetChild(box, 0);
var bullet = (Grid)bulletDecorator.Bullet;
var innerBorder = bullet.Children.OfType().SingleOrDefault(x => x.Name == "InnerBoder");
if (innerBorder is not null)
{
adornableElement = innerBorder;
}
}
< /code>
Это, однако, кажется очень статичным и требует знания о шаблоне, а также сломается, если шаблон будет изменен. Есть ли способ решить это более элегантно?

Подробнее здесь: https://stackoverflow.com/questions/793 ... l-template
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как связать дочерние даты к родительскому элементу в шаблоне WPF .XAML
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как привязать дочерние данные к родительскому элементу в шаблоне WPF .xaml
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • React — дочерние компоненты вызывают эффект щелчка по родительскому элементу
    Гость » » в форуме CSS
    0 Ответы
    68 Просмотры
    Последнее сообщение Гость
  • Как в MAUI загрузить цвета в ./Styles/Colors.xaml из ./Platforms/Windows/App.xaml + App.xaml.cs?
    Anonymous » » в форуме C#
    0 Ответы
    112 Просмотры
    Последнее сообщение Anonymous
  • Обратитесь к элементу XAML в файле xaml.cs в проекте Windows 8.1
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»