Как писать внутри содержимого дока в C#

E сть DockPanel и когда я выполняю этот код, он добавляет содержимое док-станции к правой док-станции, НО я не могу заставить его отображать текст (т. е. выполнить шаги 1 и 2 и т. д., как показано ниже). Я сделал так много исследований, ничего не сработало. Заранее спасибо за помощь.

public void ShowInstructionForm()
{
    dragDropForm = new DockContent();
    dragDropForm.Name = "Hints";

    dragDropForm.TabText = "Hints2";
    dragDropForm.ShowHint = DockState.DockRight;
    dragDropForm.BackColor = Color.White;
    dragDropForm.Text = "- Perform the step number 1 ."
        + Environment.NewLine + " - Perform the Step number 2";                                     

    try
    {
        dragDropForm.Show(this.oDock.MainDock);
    }
    catch (Exception e)
    {
        MessageBox.Show(this.oDock.MainDock, "error happened  " + e.Message);
    }
}

2 ответа

Лично я бы использовал привязку данных для достижения того, чего вы хотите, чтобы вы придерживались более жесткого шаблона проектирования.

XAML

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
    DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <DockPanel>
        <TextBlock Text="{Binding Path=Foo}" />
    </DockPanel>
</Window>

C#

public partial class MainWindow : Window
{
    public string Foo { get; set; }

    public MainWindow()
    {
        Foo = "hello world"; // Changing Foo 'automagically' changes your textblock value
        InitializeComponent();
    }
}

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

Можете ли вы зайти в xaml и поместить текстовый блок в DockPanel следующим образом:

<DockPanel>
  <TextBlock Text="- Perform the step number 1 ."/>
</DockPanel>
Другие вопросы по тегам