Я надеюсь, что вы можете помочь мне с моей проблемой. Речь идет о собственном конструкторе для действий WF 4.0, но проблема, по сути, заключается в WPF дизайнера.
Некоторый фон
Я создал пользовательское действие WorkFlow для отправки электронных писем. Для пользовательского дизайнера для действия, я ранее использовал обычные текстовые поля для «Тема» и «Тело» электронной почты, но я хотел бы использовать ExpressionTextBox, чтобы легко связать его с InArguments действия , Ящики ExpressionTextBox находятся в сетке, и эта сетка находится в StackPanel.
Я установил MinWidth, MaxWidth и Margin ExpressionTextBoxes, чтобы они соответствовали другим элементам управления, а в Visual Studio Designer (при просмотре конструктора пользовательских операций, а не фактического 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. Я бы предпочел, чтобы он оставался одинаковым, независимо от того, находится он в режиме редактирования или нет.
Если вы его не видите, откройте изображение здесь
Что я пробовал
В основном я занимался WinForms, и я довольно неопытен с WPF, поэтому я не знаю, есть ли какие-нибудь прикольные свойства или другие настройки, которые я пропустил. Я попытался установить свойства width родительских элементов управления (StackPanel и Grid), я попытался установить только ширину (без min / max), но, похоже, она уменьшается независимо от того, что я установил.
Если вам нужна дополнительная информация или код, пожалуйста, не стесняйтесь спрашивать.
Обновление
Как вы можете видеть в комментариях к ответу Мориса, я выяснил, как избежать проблемы, удалив свойство horizontalAlignment, а затем используя поля для выравнивания по правому краю. Но я не собираюсь отмечать ответ, пока нет объяснения, почему это поведение произошло в первую очередь. Мой XAML был почти идентичен тому, что написал Морис, поэтому в другом месте должно быть что-то не так.