Если у вас следующий html-код:
<button id="myButtonUp">myButtonTextForUp</button>
<button id="myButtonDown">myButtonTextForDown</button>
<ul>
<li>line_1</li>
<li>line_2</li>
<li>line_3</li>
</ul>
Я предполагаю, что у вас уже есть что-то, что нужно пометить каждые li
с, поэтому после я предполагаю, что помеченный li
имеет класс markedLi
; Следующий код должен теоретически переместить этот элемент вверх или вниз (полностью непроверенный с курса):
$('#myButtonUp').click(function(){
var current = $('.markedLi');
current.prev().before(current);
});
$('#myButtonDown').click(function(){
var current = $('.markedLi');
current.next().after(current);
});
Оказывается, решение этой проблемы было связано с самим используемым файлом PNG для фона. Я просто открыл его с помощью Paint.NET и повторно сохранил, затем снова поместил в проект, и он сработал.
Не уверен, что изменилось, но это решило проблему.
У меня была аналогичная проблема. В моем случае я избавился от MemoryStream, из которого загрузил образ.
//The following throws and OutOfMemoryException at the TextureBrush.ctor():
/*someBytes and g declared somewhere up here*/
Bitmap myBmp = null;
using(MemoryStream ms = new MemoryStream(someBytes))
myBmp = new Bitmap(ms);
if(myBmp != null) //that's right it's not null.
using(TextureBrush tb = new TextureBrush(myBmp)) //OutOfMemoryException thrown
g.FillRectangle(tb,0,0,50,50);
//This code does not throw the same error:
/*someBytes and g declared somewhere up here*/
MemoryStream ms = new MemoryStream(someBytes);
Bitmap myBmp = new Bitmap(ms);
if(myBmp != null)
using(TextureBrush tb = new TextureBrush(myBmp))
g.FillRectangle(tb,0,0,50,50);
Пожалуйста, не утилизируйте изображение и не закрывайте объект filestream, из которого вы получили изображение, до вызова класса TextureBrush для создания плитки. В противном случае класс TextureBrush выбросит исключение Out of Memory.
Поэтому лучший способ - показать плиточное изображение, вызвав TextureBrush Image, а затем закрыть объект filestream в событии Paint оконной формы.