Всегда указывайте необязательные аргументы в качестве последних аргументов со значением по умолчанию. Поскольку в PHP нет ни именованных параметров, ни «перегрузки Java», это единственный способ:
function replace_product_link( $link_html, $product, $args=null ){
return $link_html;
}
Сохраните значения в файле user.config.
Вам необходимо создать значение в файле настроек - оно должно находиться в папке «Свойства». Создайте пять значений:
Верх
типа double
Левый
типа double
Высота
типа double
Ширина
типа double
Maximized
типа bool
- удерживать, развернуто ли окно или нет. Если вы хотите сохранить больше информации, то потребуется другой тип или структура. Инициализируйте первые два значения 0, а вторые два - размером по умолчанию вашего приложения, а последний - значением false.
Создайте файл Window_OnSourceInitialized обработчик событий и добавьте следующее:
this.Top = Properties.Settings.Default.Top;
this.Left = Properties.Settings.Default.Left;
this.Height = Properties.Settings.Default.Height;
this.Width = Properties.Settings.Default.Width;
// Very quick and dirty - but it does the job
if (Properties.Settings.Default.Maximized)
{
WindowState = WindowState.Maximized;
}
ПРИМЕЧАНИЕ:
На самом деле вам не нужно использовать для этого код программной части (за исключением сохранения настроек). Вы можете использовать собственное расширение разметки, чтобы привязать размер и положение окна к настройкам, например:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:WpfApplication1"
Title="Window1"
Height="{my:SettingBinding Height}"
Width="{my:SettingBinding Width}"
Left="{my:SettingBinding Left}"
Top="{my:SettingBinding Top}">
Вы можете найти код этого расширения разметки здесь: http://www.thomaslevesque.com/2008/11/18/wpf-binding-to-application-settings-using-a-markup-extension/
Хотя вы можете «свернуть свое» и вручную где-нибудь сохранить настройки, и в целом это будет работать, очень легко не справиться со всеми случаями правильно. Гораздо лучше позволить ОС делать всю работу за вас, вызывая GetWindowPlacement () при выходе и SetWindowPlacement () при запуске. Он обрабатывает все безумные граничные случаи, которые могут возникнуть (несколько мониторов, сохранение нормального размера окна, если оно закрыто, пока оно развернуто, и т. Д.), Так что вам не придется.
Этот образец MSDN показывает, как использовать их с приложением WPF. Образец не идеален (окно будет начинаться в верхнем левом углу как можно меньше при первом запуске, и есть некоторая странность, когда конструктор настроек сохраняет значение типа WINDOWPLACEMENT
),
Просто написал запись в блоге, в которой подробно описывается, как это сделать простым и надежным способом. Он использует функции GetWindowPlacement
и SetWindowPlacement
, упомянутые Энди, но с некоторыми из упомянутых им странных действий убраны:
https://engy.us/blog/2010/ 03/08 / save-window-size-and-location-in-wpf-and-winforms /
Вот некоторые отличия от других ответов: