Надеюсь, вы поможете мне с моей проблемой. Речь идет о настраиваемом конструкторе для действия WF 4.0, но проблема в основном в WPF дизайнера. Немного предыстории
Я создал настраиваемое действие WorkFlow для отправки электронных писем. Для настраиваемого конструктора действия я раньше использовал обычные текстовые поля для «Тема» и «Тело» сообщения электронной почты, но я хотел бы использовать ExpressionTextBox, чтобы легко привязать его к InArguments действия. . ExpressionTextBoxes находится в сетке, а эта сетка - на StackPanel.
Я установил MinWidth, MaxWidth и Margin для ExpressionTextBoxes так, чтобы они соответствовали другим элементам управления, а в конструкторе Visual Studio (просматривая пользовательский конструктор действий, а не фактический WorkFlow) все выглядит так, как должно.
<sapv:ExpressionTextBox Grid.Column="1" Grid.Row="2" Height="Auto" HorizontalAlignment="Right" Margin="4, 4, 4, 4"
Expression="{Binding Path=ModelItem.Subject, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In}"
ExpressionType="{x:Type TypeName=sys:String}" OwnerActivity="{Binding Path=ModelItem}" VerticalAlignment="Center" MaxWidth="176" MinWidth="175" />
Проблема
При использовании изначально он также выглядит так, как должен, но когда ExpressionTextBoxes редактируются, они становятся действительно маленькими. При вводе текста элемент управления расширяется, чтобы соответствовать тексту, пока не достигнет своей MaxWidth. Когда редактирование заканчивается, оно возвращается к MaxWidth. Я бы предпочел, чтобы он оставался того же размера, независимо от того, находится он в режиме редактирования или нет.
Если вы его не видите, откройте изображение здесь
Что я пробовал
Я в основном занимаюсь WinForms, и у меня нет опыта работы с WPF, поэтому я не знаю, есть ли какие-то необычные свойства или другие настройки, которые я пропустил. Я попытался установить свойства ширины родительских элементов управления (StackPanel и Grid), я попытался установить только ширину (без мин. / Макс.), Но кажется, что она сжимается независимо от того, что я установил.
Если вам нужна дополнительная информация или код, не стесняйтесь спрашивать.
Обновить
Как вы можете видеть в комментариях к ответу Мориса, я понял, как избежать проблемы, удалив свойство horizontalAlignment, а затем используя поля, чтобы выровнять его по правому краю. Но я не собираюсь отмечать ответ, пока не будет объяснения, почему такое поведение произошло вообще. Мой XAML был почти идентичен тому, что опубликовал Морис, так что в другом месте должно быть что-то не так.