Ответы пользователя по тегу C#
  • Почему происходит зависание формы и таймеров windwos forms?

    @tex0
    То о чем говорит Станислав Макаров не совсем верно ибо существует очень много случаев, когда вам необходимо изменять контрол из стороннего потока (так то вообще да - если есть возможность избегать изменения контрола в стороннем потоке - избегайте). Ваш lock тут не поиможет. Для этого существует Control.InvokeRequired.
    (А вообще, если говорить о графических приложениях, я вам советую перейти с WinForms на WPF.)
    Ответ написан
  • MVP как правильно вернуть переменную во ViewModel прогрессбара?

    @tex0
    Вот тут
    А ещё кури в сторону:
    - InvokeRequired
    - SynchronizationContext
    Это вопрос доступа к элементам управления из стороннего потока.
    Ответ написан
    Комментировать
  • Присвоение цвета WPF?

    @tex0
    Есть и второй способ: самостоятельно создать цвет в конструкторе, но тогда как присвоить его в коде?

    у Border есть свойство Background. Это свойство типа Brush. Создаете в классе свойство типа Brush, привязываетесь к нему в XAML, в конструкторе определяете это свойство как вам угодно.

    пример
    XAML:
    ...
       <Border Background={Binding BorderBrush} />
    ...


    Behaviour:
    class MyControl
    {
       public MyControl()
       {
           BorderBrush = new SolidColorBrush(youColor);//youColor - создаете свой цвет классом Color.
       }
       public Brush BorderBrush {get; private set;}
    }


    попробуйте так
    Ответ написан
    Комментировать
  • Как в WPF беспрерывно показывать в Image битмап?

    @tex0
    З.Ы Я новичок в c# и WPF соответственно.

    Курите в сторону биндинга.
    У Image (если я не ошибаюсь) есть свойство Source (тип свойства ImageSource. BitmapSource вроде как наследуется от этого типа).
    В CodeBehind определяете свойство, например так (BitmapContainer.cs)
    class BitmapContainer : INotifyPropertyChanged
    {
        public BitmapContainer()
        {
            //...
            DataContext = this; 
            //...
        }
    
    private BitmapSource varBmpSrc_;
    
        public BitmapSource BmpSrc 
        {
            get
            {
                return varBmpSrc_;
            } 
            set
            { 
                varBmpSrc_ = value; 
                OnPropertyChanged("BmpSrc");//обязательно!!! Имплементить INotifyPropertyChanged интерфейс
            }
        }
    }


    Далее в разметке (XAML) (BitmapContainer.cs.xaml)
    ...
        <Image Source={Binding BmpSrc, UpdateSourceTrigger=PropertyChanged} />
        ...


    И далее, по идее, когда вы будете задавать свойство BmpSrc у объекта класса BitmapContainer, cвойсво Source у Image будет меняться на новое.

    //где-то на просторах вашего кода
        bitmapContainerObject.BmpSrc = Converter(WriteableBitmap);
    Ответ написан
    3 комментария
  • Перегрузки методов без дублирования кода в C#?

    @tex0
    Что вы делаете в таком случае?...Разбиваете внутренности метода на отдельные методы и выносите их отдельно, обращаясь к ним в каждой из перегрузок?

    This!
    Это лучше чем дублировать код, от которого потом рябит в глазах=).
    Лично я, имея длинный метод, всегда разрезаю его на подзадачи, тем самым выделяя основной функционал, а весь остальной обвес получается как частные случаи (это ещё и полезно для развития навыка классификации данных).
    Ответ написан
    Комментировать
  • Как назначить интерфейс PasswordBox?

    @tex0
    Проблема в том, что основной класс PasswordBox нельзя наследовать.

    могу предложить описать требуемый интерфейс IPasswordBox, затем создать UserControl, унаследовать его от IPasswordBox и агрегировать туда стандартный PasswordBox, выделив нужные свойства на функционал интерфейса.
    (Ну в общем агрегирование используйте. Тоже костыль, но уже более вменяемый хотя бы потому что свой велосипед не нужно писать, а подключить существующий)
    Ответ написан
    1 комментарий
  • Как вы начинали разрабатывать под Windows Phone?

    @tex0
    В данный момент разрабатываю metro приложение.
    Начинал просто - взял и сел за разработку. Стал поднимать инфу в инете по данному и сопутствующим вопросам. Инфы и тем более примеров с не стандартными кейсами очень мало. Собирал по крупицам.
    Актуально ли ещё утверждение, что с книгами туго, и нужно сначала освоить WPF с MVVM?

    Да. Если захочешь писать на xaml + C# behaviour то WPF-MVVM нужно знать. Так же есть возможность писать на связке HTML+WinJS (по сути "те же яйца только в профиль"), но мне что-то в душу этот подход не запал.
    (Пополнение словаря ненормативной лексики в процессе разработки обеспечено.)
    Удачи!!!
    Ответ написан
    Комментировать
  • Как обратиться к методу класса Form из другого класса?

    @tex0
    Управляет данными на форме и содержит алгоритмическую часть решения


    тогда примерно так

    class Form1 : Form
    {
        public Form()
        {
            // конструируем форму
            AnothertypeObject  = new AnotherType(this); // создаем объект контроллера в нужном нам месте. 
            //По умолчанию создаю в конструкторе формы
        }
    
        public AnotherType AnothertypeObject {get; private set;}
        // остальной код
    }
    
    public interface IFormController
    {
        void DoSomething();
    }
    
    class AnotherType : IFormController
    {
        private Form host_;
        public AnotherType(Form host)
        {
            host_ = host;
        }
       
        public void DoSomething()
        {
            // вызываем нужный метод объекта host_
        }
        // другая логика
    }


    решение топорное, но для примера думаю сойдёт.
    Ответ написан
  • Возможно ли "соединить" два файла, не перемещая данные?

    @tex0
    Задумайся над смыслом понятия "дефрагментация диска".
    И как сказал выше Hydro - в ЮзверьМоде ты такого не сделаешь. Нужно делать в KernelMode. Кури в сторону организации хранения данных (файловые системы).
    Ответ написан
    Комментировать