WPF Индивидуальные состояния диалогов с помощью ClientGuid
Используйте свойство ClientGuid в .NET 8, чтобы сохранять индивидуальные состояния диалогов — размер окна, положение и последнюю используемую папку — для каждого WPF-диалога файлов отдельно.
Появившееся в .NET 8 свойство ClientGuid позволяет однозначно идентифицировать диалоги вроде OpenFileDialog и OpenFolderDialog, чтобы сохранять состояние — размер окна, положение, последнюю использованную папку — отдельно для каждого диалога.
Чтобы воспользоваться этим, задайте у своего диалога ClientGuid известным идентификатором до вызова метода ShowDialog().
static readonly Guid _id = new Guid("32bc5a4c-e28f-408a-8aca-e0b430fbc17c");
var dialog = new OpenFileDialog
{
ClientGuid = _id
};
dialog.ShowDialog();
Состояние диалога сохраняется между разными запусками приложения и даже между разными приложениями — важно лишь, чтобы ClientGuid был одним и тем же.
Примечание: убедитесь, что используете один и тот же идентификатор в разных экземплярах приложения. Не генерируйте Guid во время выполнения через Guid.NewGuid(): это будет давать новый Guid при каждом запуске, и состояние диалога будет сбрасываться. Вместо этого сохраните Guid как в примере выше или заведите класс KnownDialogs специально для хранения идентификаторов диалогов.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.