C# wpf Process.start не будет работать без точки останова - PullRequest
0 голосов
/ 15 марта 2020

Ниже мой код:

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. Понятия не имею, что не так.

1 Ответ

0 голосов
/ 15 марта 2020

(не ответ, но альтернатива)

 System.Diagnostics.Process.Start(file.FileName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...