indiapalealex Ответов: 1

Как управлять двумя отдельными дисплеями в WPF?


Я пишу приложение, которое позволит пользователям выбирать из серии карт на сенсорном дисплее, а затем карты также будут отображаться на большом настенном экране. Пользователи смогут панорамировать/масштабировать/вращать карты, и я бы хотел, чтобы настенный экран показывал эти изменения синхронно с сенсорным экраном.

Как правильно подойти к управлению этими двумя дисплеями?

В настоящее время у меня есть приложение, настроенное в формате MVVM, и я использую Caliburn.Микро.

Каждая карта находится в своем собственном UserControl, и они активируются в ContentControl на моем ShellView с помощью Conductor и ActivateItem в ShellViewModel. Я хотел бы, чтобы активный элемент также отображался в отдельном окне (на настенном экране).

Вот код до сих пор:

ShellView.язык XAML:

<Grid>
       <!--The Content control shows which MapView is currently active-->
       <ContentControl x:Name="ActiveItem"/>
           <StackPanel>
               <TextBlock Text="Select a map.">
               <ComboBox>
                   <Button x:Name="LoadMap1">Map1</Button>
                   <Button x:Name="LoadMap2">Map2</Button>
                   <Button x:Name="LoadMap3">Map3</Button>
               </ComboBox>
           </StackPanel>
   </Grid>



ShellViewModel.в CS
public class ShellViewModel : Conductor<object>
{
    public ShellViewModel()
    {

    }

    public void LoadMap1()
    {
        ActivateItem(new MapOneViewModel());
    }

    public void LoadMap2()
    {
        ActivateItem(new MapTwoViewModel());
    }

    public void LoadMap3()
    {
        ActivateItem(new MapThreeViewModel());
    }
}


Я не знаю, является ли это лучшим способом настроить его, но он хорошо работает для загрузки карт в ShellView. Мне действительно просто нужно показать то же самое в другом окне для настенного дисплея

Любая помощь оценена по достоинству, спасибо!

Что я уже пробовал:

Я пробовал использовать визуальную кисть, но не знаю, смогу ли я привязать ее к двум окнам.

1 Ответов

Рейтинг:
1

Gerry Schmitz

Вы можете показать столько немодальных окон, сколько захотите, и иметь любые методы вызова окна в другом окне.

Если этого недостаточно, вы запускаете несколько экземпляров своего приложения; используя удаленную автоматизацию или что-то еще, что приходит на ум.

Окна можно перетащить на любой экран. Windows 10 хорошо масштабируется, ИМО.


indiapalealex

Спасибо за ваш ответ! Может ли немодальное окно показывать тот же экземпляр, что и другое окно? Например, когда пользователи вносят изменения в пользовательский интерфейс, я хочу, чтобы другое окно показывало эти изменения синхронно с первым окном во время выполнения.