Ниже мой код:
public static void ImageDoubleClick(FileModel file)
{
if (file == null)
{
return;
}
Process.Start(new ProcessStartInfo(file.FileName)
{
UseShellExecute = true
});
}
Когда я дважды щелкаю изображение, оно предполагает открыть файл с системной оболочкой. Но когда я дважды щелкаю. ничего не случилось, как будто я не вызвал событие. Но я знал, что это так.
Поэтому я добавил точку останова в строку «Process.Start». Это остановилось. Затем, если я нажму «Продолжить», файл будет открыт правильно.
Что мне здесь не хватает? Спасибо за вашу помощь.
Код для xaml:
<ContentControl VerticalAlignment="Center"
cal:Message.Attach="[Event MouseDoubleClick]=[Action ImageDoubleClick($dataContext)]">
<StackPanel x:Name="border"
VerticalAlignment="Center"
cal:Message.Attach="[Event MouseLeftButtonUp]=[Action ImageClick($dataContext)]"
Orientation="Horizontal">
<Border Height="25" Width="25">
<StackPanel>
<Canvas Width="24" Height="24"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
<Canvas.Background>
<ImageBrush ImageSource="{Binding FileImage}"
AlignmentX="Center"
AlignmentY="Center"
Stretch="Fill" />
</Canvas.Background>
<CheckBox Name="myCheckBox"
IsChecked="{Binding IsSelected}"
Visibility="Collapsed" />
</Canvas>
</StackPanel>
</Border>
<StackPanel HorizontalAlignment="Left"
VerticalAlignment="Center"
Visibility="{Binding ImageTextEnabled, Converter={StaticResource VisibleIfTrueConverter}}"
>
<TextBlock Text="{Binding DisplayName}"
FontFamily="Microsoft YaHei, Arial"
FontSize="7"
FontWeight="Bold"
Foreground="Black"
Style="{StaticResource MaterialDesignOverlineTextBlock}"
TextWrapping="NoWrap"
HorizontalAlignment="Left" VerticalAlignment="Center"
Margin="5,0,0,0"
Width="200" />
<TextBlock Text="{Binding CreatedDateTime, Mode=OneWay, StringFormat='yyyy-MM-dd HH:mm:ss'}"
FontFamily="Microsoft YaHei, Arial"
FontSize="7"
FontWeight="Bold"
Foreground="Gray"
Style="{StaticResource MaterialDesignOverlineTextBlock}"
TextWrapping="NoWrap"
HorizontalAlignment="Left" VerticalAlignment="Center"
Margin="5,0,0,0"
Width="200" />
</StackPanel>
</StackPanel>
</ContentControl>
И я только что попробовал и понял, что этот код прекрасно работает после компиляции. Это странно работает только в режиме отладки Visual Studio 2019. Понятия не имею, что не так.