Если вы хотите привязать к ширине растягиваемых объектов, вы должны привязать к ActualWidth
:
{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=Canvas}}
Редактировать: Возможно, это не такнеобходимый
У холстов есть привычка вообще не занимать места, если вы не скажете им:
<ItemsControl ItemsSource="{Binding MarkerLocations, Mode=OneTime}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Background="Red"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Установка Background
- полезный трюк с отладкой макета дляпосмотрим, действительно ли его там.Оттуда один из ваших подходов должен работать.