safonovea
- Вопросы
- Ответы
Имя | Евгений Сафонов |
Возраст | Неизвестно |
Сайт | Неизвестно |
Неизвестно | |
Участвует в проекте | 1105 дн., 2 час., 36 мин. |
Последняя активность | 492 дн., 11 час., 9 мин. назад |
Ответы
Перейти к вопросу →
Насколько я понял, по-умолчанию такая комбинация клавиш не определена, но можно добавить ее через Main menu -> Tools -> Options -> Environment -> Keyboard.
Перейти к вопросу →
Можно использовать CollectionViewSource
в качестве ItemsSource
. Например так:
<Window ...
xmlns:ComponentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase">
<Window.Resources>
<CollectionViewSource x:Key="viewSource" Source="{Binding SomeSource}">
<CollectionViewSource.SortDescriptions>
<ComponentModel:SortDescription Direction="Ascending" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Window.Resources>
...
<ListBox ItemsSource="{Binding Source={StaticResource viewSource}}" />
</Window>
Перейти к вопросу →
Где-то встречались советы менять область видимости аж на public, запускать тесты, а потом менять обратно %)
Перейти к вопросу →
Для этого, но она не совсем подходит. Она возвращает handle элемента управления с фокусом ввода, если этот элемент управления присоединен к очереди сообщений текущего потока. Т.е. если фокус сейчас находится в окне, созданном в потоке/процессе, отличном от вызывающего, то GetFocus()
возвратит NULL
Перейти к вопросу →
Проверка на то, что переменная содержит тип:
if (val is Type)
// да, содержит тип
else
// нет, не содержит
Проверка на то, что переменная содержит конкретный тип:
if (val == typeof(String))
{
// да, это String;
}
Перейти к вопросу →
Вот решение:
// Получаем handle окна, с которым работает пользователь
IntPtr hWnd = User32.GetForegroundWindow();
// Получаем идентификаторы потока активного окна и вызывающего потока
uint targetThreadId = User32.GetWindowThreadProcessId(hWnd, IntPtr.Zero);
uint currentThreadId = Kernel32.GetCurrentThreadId();
// Приаттачиваем механизм обработки ввода текущего потока
// к механизму потока активного окна
User32.AttachThreadInput(currentThreadId, targetThreadId, true);
// Наконец-то! Вот, он долгожданный handle! :)
// Теперь GetFocus() работает как надо :)
IntPtr focusedWindow = User32.GetFocus();
// Не забываем прибраться за собой - разаттачиваем механизмы обработки ввода
User32.AttachThreadInput(currentThreadId, targetThreadId, false);
User32.<имя_функции>
и Kernel32.<имя_функции>
— импорт соответствующих WinAPI
функций для вызова из C#
Перейти к вопросу →
Видимо придется проверять, что эта кисть есть SolidBrush
, а у такого объекта есть свойство Color
Перейти к вопросу →
Такое поведение объясняется тем, что при обращении к getter'у свойства Rect возращается новый экземпляр значимого типа System.Drawing.Rectangle, который никак не связан с классом MyClass.
Чтобы представить себе эту ситуацию, можно рассматривать этот объект как, например, простое целое число, скажем 6. Т.е. по сути компилятор видит строки:
MyClass myClass = new MyClass(); Все Ок
6 = 13; => Ошибка!!!
И незамедлительно сообщает об этом.
Чтобы обойти это, видимо, придется получать структуру из объекта myClass, изменять ее и снова сохранять в объекте:
MyClass myClass = new MyClass();
Rectangle rect = myClass.Rect;
rect.X = 13;
myClass.Rect = rect;
Перейти к вопросу →
Прошу прощения, не совсем верный пример привел. Метод как раз должен принимать параметр. Не очень хочется создавать 3 свойства (в моем случае) с вызовом одного и того же метода, только с разным параметром.
Перейти к вопросу →
Можно возвращать свой унаследованный от ActionResult результат. В котором соответствующим образом будет перекрыт метод ExecuteResult().
Например:
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.ContentType = "text/xml";
Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(Feed);
using (XmlWriter writer = XmlWriter.Create(context.HttpContext.Response.Output))
{
rssFormatter.WriteTo(writer);
}
}