Создаю приложение для клиники, хотят добавить возможность заполнения рецепта внутри приложения и распечатки оттуда. Я пытался просто разместить несколько текстовых полей для информации, которую они размещают в своих выделенных областях, но они, похоже, никогда не остаются в своих областях. Я пробовал несколько способов использования оболочки холста в окне просмотра, но, похоже, мне не удалось реализовать то, что я имею в виду.
Вот XAML для всех, кому интересно, буду рад любой помощи.
Для справки: я вызываю два метода C#:
private void AddMedicineButton_Click(object sender, RoutedEventArgs e)
{
MedicineList.Measure(new Size(MedicineScroll.ActualWidth, double.PositiveInfinity));
double totalHeight = MedicineList.DesiredSize.Height;
double availableHeight = MedicineScroll.ViewportHeight > 0 ? MedicineScroll.ViewportHeight : MedicineScroll.Height;
if (totalHeight >= availableHeight)
{
MessageBox.Show("Cannot add more medicines — the container is full.");
return;
}
var container = new StackPanel { Orientation = Orientation.Horizontal, Margin = new Thickness(0, 5, 0, 5) };
var nameBox = new TextBox { Width = 150, Margin = new Thickness(5, 0, 5, 0) };
var amountBox = new TextBox { Width = 60, Margin = new Thickness(5, 0, 5, 0) };
var perDayBox = new TextBox { Width = 60, Margin = new Thickness(5, 0, 5, 0) };
var durationBox = new TextBox { Width = 80, Margin = new Thickness(5, 0, 5, 0) };
container.Children.Add(nameBox);
container.Children.Add(amountBox);
container.Children.Add(perDayBox);
container.Children.Add(durationBox)
MedicineList.Children.Add(container);
}
private void FinishButton_Click(object sender, RoutedEventArgs e)
{
AddMedicineButton.Visibility = Visibility.Collapsed;
foreach (StackPanel sp in MedicineList.Children)
{
var name = ((TextBox)sp.Children[0]).Text;
var amount = ((TextBox)sp.Children[1]).Text;
var perDay = ((TextBox)sp.Children[2]).Text;
var duration = ((TextBox)sp.Children[3]).Text;
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... age-in-wpf