Как Вы делаете относительное расположение в WPF?

typedef typename Tail::inUnion dummy;

Однако я не уверен, что реализация inUnion верна. Если я правильно понимаю, этот класс не должен быть создан, поэтому вкладка «fail» никогда не будет автоматически терпеть неудачу. Возможно, было бы лучше указать, находится ли тип в объединении или нет с простым булевым значением.

template  struct Contains;

template 
struct Contains >
{
    enum { result = Contains::result };
};

template 
struct Contains >
{
    enum { result = true };
};

template 
struct Contains
{
    enum { result = false };
};

PS: Посмотрите на Boost :: Variant

PS2: посмотрите на typelists , особенно в книге Андрея Александреску: Modern C ++ Design

28
задан animuson 29 April 2012 в 05:56
поделиться

2 ответа

Вместо того, чтобы поместить (как в Ваш пример) кнопку непосредственно на холсте, Вы могли поместить stackpanel на холст, горизонтально выровненный, и помещать эти две кнопки там.

Как так:

<Canvas>
  <StackPanel Canvas.Left="100" Canvas.Top="100" Orientation="Horizontal">
    <Button>Button 1</Button><Button>Button 2</Button>
  </StackPanel>
</Canvas>

alt text

я думаю, что это довольно гибко, когда Вы используете больше чем 1 расположение в форме, и можно создать в значительной степени любую конфигурацию, которую Вы хотите.

14
ответ дан Community 28 November 2019 в 03:51
поделиться

Хороший вопрос. Насколько я знаю, у нас должна быть различная пользовательская панель для получения этой функции. Так как WPF основан на Визуальной Иерархии нет никакого способа иметь этот вид Плоской структуры для элементов в платформе.

, Но Вот прием, чтобы сделать это. Место Ваши элементы в том же положении и дают относительное смещение при помощи RenderTransform. TranslateTransform. Таким образом, X и Y Вашего TranslateTransfrom всегда будут relatuve к другому элементу.

10
ответ дан Jobi Joy 28 November 2019 в 03:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: