Вы можете использовать ViewBox для переноса пользовательского элемента управления. ViewBox автоматически масштабирует свое содержимое в соответствии с размером, который у него есть.
Вы можете сохранить свой «фиксированный» макет, используя фиксированный размер и поля, и просто обернуть его в ViewBox.
<ViewBox>
<YourControl />
</ViewBox>
Вот пример быстрого макета, сделанного с использованием той же RelativePanel, обернутой в окна просмотра нескольких размеров:
И код (я продублировал RelativePanel просто для быстрого примера, но обратите внимание, что размер окна просмотра не совпадает с размером для внутреннего элемента управления):
<Viewbox Width="80" Margin="12">
<RelativePanel Width="200" Height="140" Background="DarkBlue" Padding="12">
<TextBlock x:Name="number"
Text="XXXX XXXX XXXX XXXX"
Foreground="White"
RelativePanel.AlignVerticalCenterWithPanel="True"
RelativePanel.AlignHorizontalCenterWithPanel="true"/>
<TextBlock x:Name="name"
Text="FIRST NAME"
Foreground="White"
RelativePanel.AlignLeftWith="number"
RelativePanel.Below="number"
Margin="0,12,0,0"/>
<TextBlock x:Name="date"
Text="MM/YY"
Foreground="White"
RelativePanel.AlignRightWith="number"
RelativePanel.Below="number"
Margin="0,12,0,0"/>
</RelativePanel>
</Viewbox>
<Viewbox Width="160" Margin="12">
<RelativePanel Width="200" Height="140" Background="DarkBlue" Padding="12">
<TextBlock x:Name="number1"
Text="XXXX XXXX XXXX XXXX"
Foreground="White"
RelativePanel.AlignVerticalCenterWithPanel="True"
RelativePanel.AlignHorizontalCenterWithPanel="true"/>
<TextBlock x:Name="name1"
Text="FIRST NAME"
Foreground="White"
RelativePanel.AlignLeftWith="number1"
RelativePanel.Below="number1"
Margin="0,12,0,0"/>
<TextBlock x:Name="date1"
Text="MM/YY"
Foreground="White"
RelativePanel.AlignRightWith="number1"
RelativePanel.Below="number1"
Margin="0,12,0,0"/>
</RelativePanel>
</Viewbox>
<Viewbox Width="320" Margin="12">
<RelativePanel Width="200" Height="140" Background="DarkBlue" Padding="12">
<TextBlock x:Name="number2"
Text="XXXX XXXX XXXX XXXX"
Foreground="White"
RelativePanel.AlignVerticalCenterWithPanel="True"
RelativePanel.AlignHorizontalCenterWithPanel="true"/>
<TextBlock x:Name="name2"
Text="FIRST NAME"
Foreground="White"
RelativePanel.AlignLeftWith="number2"
RelativePanel.Below="number2"
Margin="0,12,0,0"/>
<TextBlock x:Name="date2"
Text="MM/YY"
Foreground="White"
RelativePanel.AlignRightWith="number2"
RelativePanel.Below="number2"
Margin="0,12,0,0"/>
</RelativePanel>
</Viewbox>
</StackPanel>
person
Vincent
schedule
24.05.2016