Кастомный StackPanel неверно отображается

225
30 сентября 2018, 03:10

Делаю свой StackPanel с кнопкой для скрытия.

И вроде при запуске всё хорошо, но в конструкторе отображается не правильно:

Хотя должна быть ещё видна кнопка (запущенное приложение):

Не то, что бы меня сильно волновала эта проблема, скорее просто неприятно.

Сам код:

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace botDesing2 {
    public partial class ShowAnimatePanel : StackPanel {
        public ShowAnimatePanel()
        {
            InitializeComponent();
        }
        bool isContextHide = false;
        private void Button_Click(object sender, RoutedEventArgs e) {
            DoubleAnimation animation = new DoubleAnimation();
            if (isContextHide) {
                animation.From = ShowHideButton.RenderSize.Height + 6;
                animation.To = ContentPanel.RenderSize.Height;
                animation.Duration = new Duration(TimeSpan.FromMilliseconds(350));
                ContentPanel.BeginAnimation(HeightProperty, animation);
            } else {
                animation.From = ContentPanel.RenderSize.Height;
                animation.To = ShowHideButton.RenderSize.Height + 6;
                animation.Duration = new Duration(TimeSpan.FromMilliseconds(350));
                ContentPanel.BeginAnimation(HeightProperty, animation);
            }
            isContextHide = !isContextHide;
        }
    }
}

Xaml:

<StackPanel x:Class="botDesing2.ShowAnimatePanel"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:botDesing2"
         mc:Ignorable="d" 
         Name="ContentPanel"
         HorizontalAlignment="Left"
         CanVerticallyScroll="True"
         VerticalAlignment="Top"
         d:DesignHeight="450" d:DesignWidth="800">
<Border BorderBrush="#ffb2b2b2" BorderThickness="0,2,0,2"/>
<Button Name="ShowHideButton" Background="Transparent" BorderBrush="#ffb2b2b2" BorderThickness="2,0,2,0" HorizontalAlignment="Left" VerticalAlignment="Top" Click="Button_Click">
    <TextBlock Text="Bots info" Foreground="#ffffffff" FontFamily="Comic Sans MS" FontSize="20"/>
</Button>

Как исправить проблему?

P.S. заодно скажите, адекватна ли вообще такая реализация кастомного StackPanel, или можно сделать лучше?

READ ALSO
Как можно связать экземпляры класса и значения ListBox

Как можно связать экземпляры класса и значения ListBox

Есть ListBox,в который элементы добавляются с помощью цикла,каждый элемент ListBox - свойства экземпляра класса в строчном представлении(экземпляров...

229
Как заменить кириллицу на латиницу и наоборот. Без ошибок при возврате на кириллицу

Как заменить кириллицу на латиницу и наоборот. Без ошибок при возврате на кириллицу

Кодирую сообщения в base64, но кодировать кириллицу затратно по памяти, а вот латиница кодируется чуть ли не в два раза меньшеЗадается вопрос,...

208
Как взять значение из исходного кода сайта?

Как взять значение из исходного кода сайта?

Как взять определённое значение из исходного кода определённого сайта?

190
Вывести элемент массива

Вывести элемент массива

Формирую массив в цикле следобразом:

194