У меня есть сценарий, в котором я хочу динамически визуализировать объект пользовательской формы.Эта форма похожа на форму WinForms.В нашей реализации будет отображаться одна или несколько панелей кнопок, кнопки могут находиться только внутри панели кнопок, а также множество элементов управления редактирования, которые пользователь будет использовать для ввода данных.
При рендеринге формы, которую мы имеем в файле конфигурациивысота строки и ширина столбца, как в процентах от области приложения.Все формы имеют общую высоту строки и ширину столбца.Фактическое значение единицы измерения устройства рассчитывается при инициализации приложения.
Моя проблема связана с определением размера формы.Например, у меня есть форма, которая должна быть 15 строк на 80 столбцов, скажем, это переводит до 500 единиц в высоту и 800 единиц в ширину.Это будет область формы, не включая панели кнопок.Прямо сейчас я вычисляю высоту и ширину окна в FormPreviewManager.Тем не менее, это громоздко, так как я должен дать общее количество единиц, включая размер панели кнопок и границы окон, которые могут измениться, поскольку у них есть возможность включить строку заголовка или нет в плавающем окне формы.
В рамках визуализации формы я использую DockPanel, чтобы визуализировать панель (ы) кнопок и требовать оставшееся пространство в качестве моей сетки строк и столбцов.Я попытался создать панель (и) кнопок, установив оставшееся пространство для моего объекта FormGrid, а затем специально установив ширину и высоту для FormGrid, но это не меняет размер содержащего окна.
Как можноЯ делаю так, чтобы размеры плавающего окна автоматически?Я хочу, чтобы можно было нарисовать панель (и) кнопок, а затем сказать, что оставшееся пространство составляет 500 единиц в высоту и 800 единиц в ширину, а затем настроить окно на любой размер, необходимый для хранения этих данных, не больше и не меньше.
Любая помощь в этом, или возможный другой подход, была бы отличной.
Обновление
В принципе, если бы это было мое полное определение XAML для моего окна, я бы хотел установитьширина и высота UnusedContent и соответственно измените размер окна.
<Grid>
<DockPanel>
<StackPanel DockPanel.Dock="Top" Height="50" />
<StackPanel DockPanel.Dock="Left" Width="50" />
<ContentControl x:Name="UnusedContent" />
</DockPanel>
</Grid>
Если бы я установил значение UnusedContent 200 на 200, это создаст окно с внутренними размерами 250 на 250, область содержимого плюс две панели стека..