Silverlight: переполнение Холста

Археология

itoa был нестандартной функцией помощника, разработанной для дополнения atoi стандартной функции, и вероятно сокрытие sprintf (Большинство его опций может быть реализовано с точки зрения sprintf): http://www.cplusplus.com/reference/clibrary/cstdlib/itoa.html

Путь C

Использование sprintf. Или snprintf. Или безотносительно инструмента Вы находите.

Несмотря на факт некоторые функции не находятся в стандарте, как справедливо упомянуто "onebyone" в одном из его комментариев, большая часть компилятора предложит Вам альтернативу (например, Visual C++ имеет свой собственный _snprintf, Вы можете определение типа к snprintf при необходимости в нем).

C++ путь.

Использование потоки C++ (в текущем станд. случая:: stringstream (или даже станд. устаревший:: strstream, как предложено Herb Sutter в одной из его книг, потому что это несколько быстрее).

Заключение

Вы находитесь в C++, что означает, что можно выбрать способ, которым Вы хотите его:

  • более быстрый путь (т.е. путь C), но необходимо быть уверены, что код является узким местом в приложении (преждевременная оптимизация является злой, и т.д.), и что код безопасно инкапсулируется, чтобы не рисковать переполнением буфера.

  • более безопасный путь (т.е. C++ путь), если Вы знаете, эта часть кода не очень важна, так лучше быть уверенной, что эта часть кода не повредит наугад моменты, потому что кто-то перепутал размер или указатель (который происходит в реальной жизни, как... вчера, на моем компьютере, потому что кто-то думал, что это "охлаждается" для использования более быстрого пути, действительно не нуждаясь в нем).

8
задан Palantir 9 January 2012 в 08:37
поделиться

1 ответ

Поскольку холст имеет фиксированный размер, вы можете использовать отсечение . В основном вам нужно сделать:

<Canvas Width="400" Height="300">
    <Canvas.Clip>
            <RectangleGeometry Rect="0, 0, 400, 300"/>
    </Canvas.Clip>
    <!-- your StackPanel here -->
</Canvas> 

Вот несколько полезных сообщений по теме:

Обрезка в Silverlight

Обрезка или обрезка в Silverlight

20
ответ дан 5 December 2019 в 08:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: