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.
- 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
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:
SilverLight