В ближайшее время блог будет перенесен на новый хостинг – возможны сбои в работе.
Добавление: переезд завершен. Благодаря Unicode UTF8 почти никто не пострадал.
В ближайшее время блог будет перенесен на новый хостинг – возможны сбои в работе.
Добавление: переезд завершен. Благодаря Unicode UTF8 почти никто не пострадал.
А знаете ли Вы, что в XAML можно биндинг описать вот так:
<Border.Background>
<Binding Path=“Background“>
<Binding.RelativeSource>
<RelativeSource Mode=“FindAncestor“ AncestorType=“{x:Type ListBoxItem}“ AncestorLevel=“1“/>
</Binding.RelativeSource>
</Binding>
</Border.Background>
То есть можно связать свойство элемента с его родителем-контейнером. Этот биндинг очень удобно использовать при написании всяких ControlTemplate. В данном примере приведен кусок из шаблона элемента листбокса, который содержит в себе некий элемент оформления Border. Так вот цвет заливки этой рамки на элементе можно привязать к цвету самого элемента. Удобно.
Хочу порекомендовать хорошую книжку по WPF, Pro WPF in C# 2008, которую можно скачать с pdfchm.com. Достаточно сказать, что книжка объемом более тысячи страниц и освещает много аспектов, опущенных в аналогичных изданиях.
Напоминаю, что на вышеуказанном сайте с книжками надо регистрироваться.
Если ввести в гугле XAML to HTML то выпадет ссылка на програмку конвертации с исходниками. Конечно возможности этой конвертации ограничены, и не потому что утилита предназначена лишь для описания самого подхода к подобной конвертации, а потому что возможности XAML сильно шире возможностей HTML.
Можно придумать много полезных применений этой утилитки, но я использовал ее для совсем банальной вещи. А именно, я отказался от использования плагина для подсветки синтаксиса в своем блоге, а просто копирую код из студии, нажимаю одну кнопку и получаю html код, который можно вставить в блог. При этом все цвета, шрифты и отступы будут сохранены.
Например:
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : System.Windows.Window
{
public Window1()
{
InitializeComponent();
}
Для реализации этого я всего лишь слегка доработал утилитку, добавив RichTextBox, содержимое которого переводится в XAML :
string os = XamlWriter.Save(InputText.Document);
Об классах XamlReader/XamlWriter я писал немного тут, а таже на сайте готдотнет есть моя статейка на эту тему.
Итого получаем конвертацию содержимого RichTextBox прямо в HTML:
А еще можно обратно ковертировать HTML в XAML, и использовать в своих программах.
Нашел на одном из западных блогов очень удобную библиотеку для работы с фтп.
Чтоб загрузить файл на свой сервер достаточно написать пару строк:
using BytesRoad.Net.Ftp;
…
string FtpServer = “my.server.ru”;
string Username = “username”;
string Password = “password”;
string RemotePath = “\\folderonserver/”;
public void UploadFile(string LocalFile)
{
// get instance of the FtpClient
FtpClient client = new FtpClient();
// use passive mode
client.PassiveMode = true;
client.Connect(Timeout, FtpServer, 21);
client.Login(Timeout, Username, Password);
// build the target file path
string target = System.IO.Path.Combine(RemotePath,
System.IO.Path.GetFileName(LocalFile)).Replace(“\\”, “/”);
// synchronously upload the file
client.PutFile(Timeout, target, LocalFile);
//Disconnect
client.Disconnect(Timeout);
}
Обратите внимание, что используется passive mode.
Библиотека распространяется по лицензии GPL, то есть бесплатно. Скачать можно отсюда.