Witam!

Tworzę na szybko prosty program do tworzenia prezentacji i mam problem z ustaleniem pola rysowania po panelu (panelSlide). Potrzebuję obliczyć miejsce, po którym mogę rysować na tymże panelu w proporcjach 4:3 i marginesami 4) Po krótkim pomyśleniu wyczarowałem takie coś:

const int slideMargin = 4;
const double defaultFontSize = 3.5;

private void DrawSlide(Graphics graph)
        {
            double maxwidth = panelSlide.Size.Width;
            double maxheight = panelSlide.Size.Height;
            double height = 0.0;
            double width = 0.0;
            double top = 0.0;
            double left = 0.0;
            double bottom = 0.0;
            double right = 0.0;
            if (maxwidth / maxheight >= 4.0 / 3.0)
            {
                top = slideMargin;
                bottom = slideMargin;
                height = maxheight - (2 * slideMargin);
                width = (4.0 / 3.0) * height;
                left = (maxwidth / 2.0) - (width / 2.0);
                right = left;

            }
            else
            {
                //Tu by była reszta kodu, gdyby ten powyżej działał
            }

            Rectangle rect = new Rectangle(Convert.ToInt32(top), Convert.ToInt32(left), Convert.ToInt32(width), Convert.ToInt32(height));
            Brush background = new SolidBrush(Color.White);
            graph.FillRectangle(background, rect);
        }

Kod ten oczywiście działa źle. Nic mi nie przychodzi do głowy, a bardzo też nie ma czasu się nad tym zastanawiać (mam tylko kilka dni na napisanie tego).

A tak swoją drogą: czy wyświetlanie prezentacji (z materiałami wideo) przy użyciu XNA to rzeczywiście taki zły pomysł?