Перемещение stackpanel с помощью datatrigger
I have been searching the Internet for hours and can't figure out how to move a stack panel based on a datatrigger. I'm new to WPF so I don't know if this is the correct way to do what I want. Basically, I want to move views (I was told that using custom controls and putting them into stack panels would allow me to move them as needed) in and out. As an example, I want to have the user login control move into the center of the screen when the application opens. Then, once the user successfully logs in I want the control to move off the screen and I will have another control move in from the side, etc. I am at the point where I have the MainWindow looking at the IsLoggedIn boolean (I'm using MVVM) and being notified when I have a successful login from the ViewModel. I have the storyboards to move in and out working but I can't figure out how to trigger them based on the value of IsLoggedIn.
Как только я получу Это, я хотел бы иметь возможность регулировать, как далеко происходит движение, основываясь на размере элемента управления и размере экрана, так как мониторы будут разными. Например, я хотел бы настроить высоту поля, чтобы взять общую высоту используемого экрана компьютера (вычисленную во время выполнения ОС), а затем вычесть высоту элемента управления. Это даст мне количество "белого пространства", которое я могу разделить на два, чтобы элемент управления оказался в середине экрана. Я не знаю, как поместить этот расчет в настройки поля для раскадровки.
Что я уже пробовал:
До сих пор я пробовал это и потерпел неудачу во всем (обратите внимание, что я прокомментировал свои попытки, потому что они не работают. В настоящее время он работает так, что приложение запускается, а "тестовая метка", которую я вставил, заполняется ложью при запуске и изменяется на истину при успешном входе в систему, поэтому я знаю, что привязка работает):
&ЛТ;окна.ресурсы&ГТ;
<раскадровка x:ключ="sbShowUserLogin">
&ЛТ;раскадровка thicknessanimation.targetproperty="маржа"="0,-400,0,0" в="0,400,0,0" decelerationratio=".9" Продолжительность="0:0:3"&ГТ;
<раскадровка x:ключ="sbHideUserLogin">
&ЛТ;раскадровка thicknessanimation.targetproperty="маржа" от="0,400,0,0" для="0,-400,0,0" accelerationratio=".9" Продолжительность="0:0:3"&ГТ;
<сетка>
&ЛТ;панель элемент StackPanel.свойства zIndex="2" наименование="pnlUserLoginControl" ориентация="вертикальный" ширина="500" высота="400" поле HorizontalAlignment="центр" имеет="топ" маржи="0,-400,0,0"&ГТ;
<lv:loginviewcontrol horizontalalignment="Center" verticalalignment="Center" height="400" width="500">