Quando si crea un nuovo progetto Silverlight 2.0 in Visual Studio 2008 viene creato uno Usercontrol con la dimensione 400 x 300.

<UserControl x:Class="TestSL.Page"
    xmlns="http://schemas.microsoft.com/client/2007" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">

col risultato che il contenuto SilverLight non occupa tutta la client area del browser.
Le possibili soluzioni sono:

  • Eliminare la definizione di Width e Height col risultato che il designer di Visual Studio 2008 va in crisi. smile_regular
  • Sostituire Width e Height con MinWidth e MinHeight col problema evidente quando la dimensione del browser scende sotto le dimensioni minime.
  • Usare il vecchio trick di impostare la dimensione dello Usercontrol a double.NaN nel costruttore:
  • public partial class Page : UserControl
        {
            public Page()
            {
                // Required to initialize variables
                InitializeComponent();
                //Set width & height to "Auto"
                base.Width = double.NaN;
                base.Height = double.NaN;
            }
        }
     
  • Usare Blend 2.5 anzichè Visual Studio, rimuovere Width e Height e ridimensionare a piacere la dimensione a design time dello UserControl
    image 
    in questo caso Blend non modifica le dimensioni dello Usercontrol ma utilizza degli attributi propri per modificare la dimensione del controllo a design-time
  • xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    d:DesignWidth="447" d:DesignHeight="198"

    Da notare che tutti gli Usercontrol aggiunti al progetto successivamente hanno la propria dimensione correttamente impostata attraverso gli attributi DesignWidth e DesignHeight anziche avere la dimensione cablata a un valore fisso.

Technorati Tags: