■86135 / inTopicNo.1) |
エクスプローラからのドラッグ&ドロップで、ファイル名を取得 |
□投稿者/ きみのぶ (21回)-(2017/12/20(Wed) 19:16:20)
|
分類:[.NET 全般]
エクスプローラからのドラッグ&ドロップで、ファイル名を取得出来ません。
以下にコードを記述します。
XML)
<Window x:Class="KM_IconExtracter.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:KM_IconExtracter"
Icon="Resource/favicon.ico"
mc:Ignorable="d"
Title="KM_IconExtracter" Height="600" Width="800"
AllowDrop="True" Drop="Window_Drop" PreviewDragOver="Window_PreviewDragOver">
<Window.DataContext>
<local:MainWindowViewModel />
</Window.DataContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20" />
<RowDefinition Height="*" />
<RowDefinition Height="23" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal" Background="{StaticResource WindowBackgroundBrush}">
<Menu HorizontalAlignment="Stretch" Name="menu1" VerticalAlignment="Top" >
<MenuItem Header="_Application" >
<MenuItem Header="アイコン抽出" Command="{Binding ExtactIconCommand}" />
<Separator HorizontalAlignment="Stretch" />
<MenuItem Header="_Exit" Command="{Binding ExitCommand}" />
</MenuItem>
</Menu>
</StackPanel>
<ListView Name="listView1" HorizontalAlignment="Stretch" Grid.Row="1" VerticalAlignment="Stretch"
ItemsSource="{Binding IconBitmapCollection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
SelectedItem="{Binding SelectedItem}">
<ListView.ContextMenu>
<ContextMenu>
<MenuItem Header="アイコンの保存" Click="SaveIcon_Click" />
</ContextMenu>
</ListView.ContextMenu>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" >
<Image Source="{Binding BitmapSource}" Width="40" Height="40"/>
<TextBlock Text="{Binding Index}" HorizontalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StatusBar Grid.Row="2">
<StatusBarItem>
<TextBlock Text="{Binding IconFile}" />
</StatusBarItem>
</StatusBar>
</Grid>
</Window>
C#)
private void Window_Drop(object sender, System.Windows.DragEventArgs e)
{
MainWindowViewModel viewModel = this.DataContext as MainWindowViewModel;
String file = e.Data.GetData(System.Windows.Forms.DataFormats.FileDrop, true) as String;
if(file != null)
{
viewModel.IconFile = file;
viewModel.ExtractIcon();
}
}
このコードでファイルパスが取得出来ず、file変数はnullになってしまいます。
何がいけないのでしょうか?
アドバイスをお願い致します。
|
|