Содержимое кнопки не будет выравниваться [дублировать]

Вы можете использовать unique, чтобы получить все группы, затем splitapply, чтобы суммировать их

[u, ~, iu] = unique( A(:,1:2), 'rows' ); % Get unique rows & their indices
sums = splitapply( @sum, A(:,3), iu );   % Sum all values according to unique indices

output = [u, sums]
% >> output = 
% output =
%   26     7   124
%   26     8   785
%   27     7   800

. Это поздний ответ, потому что дублированный вопрос просто спросили, поэтому я разместил здесь вместо этого. Обратите внимание, что splitapply был введен в R2015b, так что не было, когда было отправлено решение accumarray.

15
задан Val M 4 October 2010 в 09:53
поделиться

2 ответа

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

Что вы можете сделать, чтобы решить эту проблему:

  • Воспроизвести с помощью свойства «Заполнение» кнопки. Это контролирует пространство между текстом и границами кнопок.
  • Уменьшить размер шрифта.
  • Не помещайте явную высоту на кнопку или, по крайней мере, придавайте ей высоту

Также, как упоминал Хайнци в комментариях, вы должны, конечно, использовать прописную букву X.

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

<Button Padding="0" 
    Width="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=ActualHeight}" 
    HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
    FontSize="12" Content="X" />

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

11
ответ дан Isak Savo 21 August 2018 в 13:28
поделиться
  • 1
    Спасибо, оба. Это прекрасно работает. Я использовал только нижний регистр "x" потому что верхний регистр был усечен, но теперь, когда я использую код, предоставленный Isak, чтобы кнопка могла установить свою собственную высоту и использовать это, чтобы получить квадрат, все это появляется так, как я хотел. – Val M 1 October 2010 в 15:36

Простым способом выполнить это с нижним регистром «x» является использование TextBlock в качестве содержимого и воспроизведение с его верхним краем:

<Button Command="{Binding myCommand}">
    <TextBlock Text="x" Margin="0,-3,0,0"/>
</Button>
16
ответ дан Nicholas 21 August 2018 в 13:28
поделиться
  • 1
    Я нашел это решение намного проще с аналогичным сценарием. Я пытался добавить очень большие символы «+» и «-» к двум кнопкам, и в любое время, когда я установил размер шрифта выше 40, принятый ответ выше не работал. TextBlock с отрицательным верхним краем работал отлично! – BMB 19 August 2013 в 15:37
Другие вопросы по тегам:

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