リストボックスで選択した項目 (画像) を他のコントロールに表示したいが、サイズは大きくしたい
私は2つのリストボックスと設定で試しましIsSynchronizedWithCurrentItem="True"
たが、うまくいきません。以下のコードを見つけてください。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" WindowStartupLocation="CenterScreen"
WindowState="Maximized">
<Window.Resources>
<XmlDataProvider x:Key="myXmlDataBase" XPath="/myXmlData">
<x:XData>
<myXmlData xmlns="">
<Item Name = "CoverSheet" SNo="1" Type="GrpBX" Image="C:\Work\00288511851128436163\N12201_0003_003\00000003.tif"/>
<Item Name = "HCFA" SNo="2" Type="GrpBX" Image="C:\Work\00288511851128436163\N12201_0003_003\00000004.tif"/>
<Item Name = "HCFA" SNo="3" Type="GrpBX" Image="C:\Work\00288511851128436163\N12201_0003_003\00000004.tif"/>
<Item Name = "HCFA" SNo="4" Type="GrpBX" Image="C:\Work\00288511851128436163\N12201_0003_003\00000004.tif"/>
<Item Name = "HCFA" SNo="5" Type="GrpBX" Image="C:\Work\00288511851128436163\N12201_0003_003\00000004.tif"/>
<Item Name = "HCFA" SNo="6" Type="GrpBX" Image="C:\Work\00288511851128436163\N12201_0003_003\00000004.tif"/>
<Item Name = "HCFA_CC" SNo="7" Type="GrpBX" Image="C:\Work\00288511851128436163\N12201_0003_003\00000005.tif"/>
<Item Name = "FrontPage" SNo="8" Type="GrpBX" Image="C:\Work\00288511851128436163\N12201_0003_003\N12201_0003_003I00.tif"/>
</myXmlData>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<DockPanel LastChildFill="True" DataContext="{Binding Source={StaticResource myXmlDataBase}}">
<!--ItemsSource="{Binding Source={StaticResource myXmlDataBase},XPath=Item}"-->
<ListBox Name="lv" FontSize="12" Background="LightSteelBlue" ItemsSource="{Binding Source={StaticResource myXmlDataBase},XPath=Item}"
ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionMode="Single"
DataContext="{Binding}" IsSynchronizedWithCurrentItem="True" DockPanel.Dock="Top" SelectedIndex="0" >
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Resources>
<!-- Background of selected item when focussed -->
<LinearGradientBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#FFD9F4FF" Offset="0"/>
<GradientStop Color="#FF9BDDFB" Offset="1"/>
</LinearGradientBrush>
<!-- Background of selected item when not focussed -->
<LinearGradientBrush x:Key="{x:Static SystemColors.ControlBrushKey}" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#FFEEEDED" Offset="0"/>
<GradientStop Color="#FFDDDDDD" Offset="1"/>
</LinearGradientBrush>
</Style.Resources>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Background="White" Width="Auto" Height="Auto" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<!--Source="{Binding XPath=@Image}"-->
<DataTemplate>
<Viewbox Stretch="None" HorizontalAlignment="Stretch" >
<Border BorderThickness="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" DataContext="{Binding}" BorderBrush="IndianRed" Margin="0" Height="Auto">
<DockPanel>
<Image
DockPanel.Dock="Top" Width="150" Margin="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="Auto"
x:Name="Myimage" RenderOptions.BitmapScalingMode="HighQuality" Source="{Binding XPath=@Image}">
</Image>
<Grid>
<TextBlock Text="{Binding XPath=@SNo}" HorizontalAlignment="Center" FontWeight="Normal" FontSize="13" />
</Grid>
</DockPanel>
</Border>
</Viewbox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListBox Name="lv1" FontSize="12" Background="LightSteelBlue" DataContext="{Binding ElementName=lv, Path=SelectedItems}" ItemsSource="{Binding}"
ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionMode="Single" KeyUp="lv1_keyup" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel LastChildFill="True" HorizontalAlignment="Stretch" Background="LightSteelBlue" Width="Auto" Height="Auto" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Viewbox Stretch="None" HorizontalAlignment="Stretch" >
<Image
Width="150" Margin="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="Auto"
x:Name="Myimage" RenderOptions.BitmapScalingMode="HighQuality" Source="{Binding}" >
</Image>
</Viewbox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DockPanel>
</Window>
私は ** で試しましXmlDataProvider**
たが、実際のシナリオでは、コレクションを通じて画像を取得します。コレクションから画像を取得する場合でも、同じソリューションを処理する必要があります