So I've used the '*' key to divide the total width into different areas that are responsive. But obviously I can't use grid everywhere, some elements don't support it etc. So my question is how do I keep those elements flexible? The most recent scenario where I stumbled upon this problem is when I tried using a ListView with an interior GridView. From my understanding GridView doesn't support declaring GridView columns with a width percentage and only use a fixed Width value. What is a work-around for this? Does it have to be this way? I would really like to make my UI as flexible as possible. Right now the fixed widths are screwing me over because I'm designing a UI for a 50" 2160p screen. However, my screen on which I'm designing on is much smaller (13" 1080p) and hence the elements get scaled out of existence and I can't really use it. Here's an example of what I'm looking for or what would be the ideal scenario.
Current scenario
<ListView ItemsSource="{Binding NotApprovedChanges}" Margin="40 90 40 40" FontSize="26" Name="nonApprovedChangesList">
<ListView.View>
<GridView>
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="ID" Width="150" DisplayMemberBinding="{Binding Id}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Requester" Width="200" DisplayMemberBinding="{Binding Requester}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Date" Width="250" DisplayMemberBinding="{Binding Date}" />
</GridView>
</ListView.View>
</ListView>
What I'm looking for
<ListView ItemsSource="{Binding NotApprovedChanges}" Margin="40 90 40 40" FontSize="26" Name="nonApprovedChangesList">
<ListView.View>
<GridView>
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="ID" Width="*" DisplayMemberBinding="{Binding Id}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Requester" Width="2*" DisplayMemberBinding="{Binding Requester}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Date" Width="*" DisplayMemberBinding="{Binding Date}" />
</GridView>
</ListView.View>
</ListView>
or
<ListView ItemsSource="{Binding NotApprovedChanges}" Margin="40 90 40 40" FontSize="26" Name="nonApprovedChangesList">
<ListView.View>
<GridView>
<GridView.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2* />
<ColumnDefinition Width="*" />
</GridView.ColumnDefinitions>
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="ID" GridView.Column="0" DisplayMemberBinding="{Binding Id}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Requester" GridView.Column="1" DisplayMemberBinding="{Binding Requester}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Date" GridView.Column="2" DisplayMemberBinding="{Binding Date}" />
</GridView>
</ListView.View>
</ListView>