У меня есть ListBox с шаблонами ItemsPanel Canvas.Я знаю, что ScrollViewer не будет работать с Canvas, если у него нет высоты и ширины.Я не хочу давать холст высоту и ширину, потому что он не всегда будет постоянным.Есть ли какая-то другая работа или хитрости, которые кто-либо должен был работать в этой ситуации.Я знаю, что не могу быть единственной с этой проблемой.Заранее спасибо, вот мой код.
Другая проблема в том, что я не могу разместить ScrollViewer внутри ItemsPanelTemplate, потому что внутри него может быть только один вложенный элемент.
Это такжеограничивает меня от размещения холста внутри сетки, чтобы получить позиционирование.
XAML:
<!--Core Viewer-->
<ScrollViewer x:Name="scrollViewer"
VerticalScrollBarVisibility="Hidden"
HorizontalScrollBarVisibility="Hidden">
<ListBox x:Name="objCoreViewer"
ItemsSource="{Binding ItemsSource}"
Background="LightGray"
SelectionChanged="objCoreViewer_SelectionChanged"
ItemTemplateSelector="{DynamicResource CoreViewerDataTemplateSelector}"
ItemContainerStyleSelector="{DynamicResource ItemContainerStyleSelector}"
PreviewMouseWheel="objCoreViewer_PreviewMouseWheel">
<!-- Core Map Canvas -->
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<Canvas x:Name="objCoreViewerCanvas"
Background="Transparent">
<Canvas.LayoutTransform>
<ScaleTransform ScaleX="{Binding Path=Value, ElementName=ZoomSlider}"
ScaleY="{Binding Path=Value, ElementName=ZoomSlider}" />
</Canvas.LayoutTransform>
</Canvas>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</ScrollViewer>